[過去ログ] Git 18 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
369: (テテンテンテン MM73-a243) 2022/07/23(土)12:52 ID:9p/E8wuyM(1) AAS
Gitして〜♪ハックする〜♪濃いだから〜♪
370(2): (ワッチョイ b15f-oZqr) 2022/07/24(日)09:33 ID:l8s7qzSF0(1) AAS
mergeはリモート追跡ブランチからできるのに、pullとかfetchはリモートブランチじゃないといけないのなんでですか?
371(1): (ワッチョイ 13ad-Ecv2) 2022/07/24(日)10:05 ID:TkuAh24s0(1) AAS
>>370
mergeはローカルから参照すればいいのに対して
pullやfetchはリモートを参照する必要があるからじゃね?
372(1): (ワッチョイ d347-6W7N) 2022/07/24(日)11:58 ID:3IyHbLDx0(1) AAS
>>370
pullやfetchはリモートブランチからローカルに情報取得するためのコマンドだからでは
373(1): (ブーイモ MMeb-FvD6) 2022/07/24(日)12:17 ID:JbQy+wjhM(1) AAS
あれpullもfetchもいけなかったっけ?
374: (ワッチョイ 695f-M5oM) 2022/07/24(日)17:27 ID:4NkR89G20(1) AAS
うるせー馬鹿野郎
375(1): 370 (ワッチョイ b15f-KxVo) 2022/07/25(月)04:35 ID:ZG4AfAc+0(1/2) AAS
>>371-372
ありがとうございます理解できました
>>373
試してみましたがリモートのブランチを指定しないとだめみたいです
origin/dev と origin devは別物でしょうか?
前者をリモート追跡ブランチとして認識しておりますが
376: 375 (ワッチョイ b15f-KxVo) 2022/07/25(月)04:44 ID:ZG4AfAc+0(2/2) AAS
訂正です。
引数にorigin/devを指定するとダメで、origin devならOKということがあるので
origin/dev と origin devは別物であるような気はしています。
いくつかコマンドを実行してみて得られた結果から推理したイメージは
①リモートのdevブランチと最も近い位置にあるローカルのブランチがorigin/dev
②リモートのdevブランチを指すのがorigin dev
といった感じです。
git logをした時に確認できるorigin/devは①のorigin/devと同一であり、これがリモート追跡ブランチだ
という理解であっておりますでしょうか。
377(1): (ブーイモ MM9d-W0Yq) 2022/07/25(月)09:09 ID:fKLif0xbM(1/2) AAS
origin dev は ローカルの dev ブランチが追跡している「リモート」のブランチ。
origin/dev はそれの「ローカル」コピー。コピーは最新ではない可能性がある。
という言い方をすると良いのかな。
378: (ブーイモ MM9d-W0Yq) 2022/07/25(月)09:32 ID:fKLif0xbM(2/2) AAS
正確に言うと違うのでややこしいな。順番が逆というか。必ずしも origin じゃなくても良いとうか。
379: (ブーイモ MM4d-1ND9) 2022/07/25(月)10:07 ID:Jqw6JNcZM(1) AAS
リモートリポジトリは、origin以外を使ってみたり、ファイルシステム経由でベアリポジトリを使ってみたりすると理解が深まるね。
インターネット接続不可能な環境だと結構使う。
380(1): (ワッチョイ 13f2-geFY) 2022/07/25(月)23:35 ID:ahGXQIib0(1/6) AAS
>>375
別物っちゃ別物だけど。
gitのヘルプを読んだほうがいいよ。
端的に言えば、origin/devは通常、リモート追跡ブランチと言っていいもので、origin devはコマンドに付けた2つの引数。
mergeはローカルレポジトリにあるrefとマージするもの。
fetchやpull(pullはfetch+mergeだから、以下fetchのみ説明する)は、リモートレポジトリにあるrefを、ローカルレポジトリにコピー/ダウンロードしてくるもの。
refは"コミットを指す参照"のこと。
つまり、refはローカルブランチ、リモートブランチ、タグなどのこと。
よく言われるように、ブランチやタグは、コミットへのポインタであるから、refはコミットを指す参照と言った。
refは、各々のレポジトリにルートにある.git/refs/**が実体。(以下.git/を省略)
refはすべてレポジトリごとに保存されている。
git branchコマンドなどでローカルブランチを作ったり、fetchやpushでリモートブランチを作ることができる。
381(3): (ワッチョイ 13f2-geFY) 2022/07/25(月)23:37 ID:ahGXQIib0(2/6) AAS
>>380
リモートブランチという名前だけど、特定のレポジトリ(例えばorigin)のrefを、ローカルレポジトリにコピーしたもの。
リモートレポジトリoriginからfetchをすると、originにあるrefs/**をダウンロードしてきて、ローカルファイルシステムに、refs/origin/**として保存する。
fetchをしなければ、最後にダウンロードしたときのままで、リモートレポジトリが他人によって更新されてても、refs/origin/**は自動には更新されない。
いつもrefs/を付けるのは面倒だから、これは省略できる。
ローカルブランチの実体.git/refs/heads/branchAは、branchAのみで通常呼ばれる。
リモートブランチの実体.git/refs/remotes/origin/branchBは、origin/branchBのみで通常呼ばれる。
382(1): (ワッチョイ 13f2-geFY) 2022/07/25(月)23:38 ID:ahGXQIib0(3/6) AAS
>>381
merge branchAは、merge refs/heads/branchAの省略形で、後者で書いてもマージできる。
refsであればマージできる。
上に書いたように、refsはリモートレポジトリからコピーしてきたもの(origin/...)と、自分で作ったref(ローカルブランチなど)のことだから、
merge branchAでも、merge origin/branchBでも正しい表現。
そのときそれらが指しているコミットとマージする。
383(1): (ワッチョイ 13f2-geFY) 2022/07/25(月)23:39 ID:ahGXQIib0(4/6) AAS
>>382
fetch origin devは、fetch origin refs/heads/dev:refs/remotes/origin/devの省略形で、後者で書いてもfetchできる。
これは、originにある.git/refs/heads/devを、ローカルレポジトリの.git/refs/remotes/origin/devにコピーするということ。
だから、fetch origin develop:devと書けば、originのdevelopを、ローカルにdevという名前で保存することも可能。
ただしトラッキングブランチの設定がある場合は、もう少し前処理が入る。(説明が冗長になるので省略。ただし、ほとんどの場合はリモートトラッキングの設定しているはず。)
ここで、fetch origin/devと書くことが何をしているかは分かりますか?
何を省略しているかを考えれば想像できると思います。
答えは書きませんので、自分で実験するなり考えてみてください。
(普通このコマンドは失敗します。そのようなrefを普通は作らないからです。)
ちゃんと知りたければ、自分でヘルプ読んだほうがいいよ。
push, fetch, pull, refspecなどを読んでみて。
384: (ワッチョイ 13f2-geFY) 2022/07/25(月)23:48 ID:ahGXQIib0(5/6) AAS
>>383
誤記あったので訂正。
> fetch origin/devと書くことが
→ fetch origin origin/devと書くことが
以上。
ちなみにfetch origin/devは必ず失敗すると思います。
その位置にはrefではなくてリモートレポジトリ名を書くわけだが、origin/devってい名前は作らないと(多分作れない)思うので。試したことないけど。
385: (ワッチョイ 13f2-geFY) 2022/07/25(月)23:59 ID:ahGXQIib0(6/6) AAS
refspec使った例で、自分がたまにやるやつを紹介して補足すると、
pushの例になるけど、
git push origin @~2:developとかは使うかな。
update update ...っていくつかコミットしたあとに、2つ前までのやつならちゃんと作れてるから、それをpushしておこうなんてときに。
fetch方向だとそういう工夫は必要ないと思うから、追跡してるとおりに取ってきちゃうけど。
386: (ワッチョイ 13f2-geFY) 2022/07/26(火)00:11 ID:BPsr0FTg0(1/3) AAS
あと、上にorigin以外を...って話があるから、自分のユースケース紹介しておくと、
自分だけが使うようなコンフィグファイルの設定とかを、backupっていうリモートレポジトリの名前で、別のフォルダに向けておいて、
git push backup myconfig1とかやることあるかな。
この場合は、リモートブランチとしてbackup/myconfig1っていうのが作られるよ。
リモートレポジトリはoriginだけじゃなくてもよくて、
ローカルレポジトリに、backup/myconfig1はorigin/developと共存してる状態だよ。
ごめんね、自分語りが長くて。
387(2): (テテンテンテン MMeb-HyOX) 2022/07/26(火)12:40 ID:iEhVjhlSM(1) AAS
gitクライアントからボタン一つクリックするだけで完了するような操作を、いちいちターミナル立ち上げてタイプしてる人は何?
しかもタイピングが遅いからまどろっこしくて仕方ないw
388(1): (ワッチョイ d347-6W7N) 2022/07/26(火)15:46 ID:LlJvHA5t0(1/2) AAS
>>387
コマンドでgitを使う=タイピングが遅い
決め付けの激しい人だな
389: (ブーイモ MM4d-W0Yq) 2022/07/26(火)16:14 ID:FjX46+h7M(1) AAS
そもそも普段からキーボード打つ方が、何十倍も早いだろ。煽るにしてもレベル低すぎ。
それともマウスでプログラム組んでるとか主張するんだろうか?
390(1): (ワッチョイ b15f-KxVo) 2022/07/26(火)17:29 ID:AlqtQl//0(1/2) AAS
>>377
origin/devはgit logで表示されるorigin/devと同一という理解であっていますか?
であれば、git logをした際にdevブランチの方がorigin/devよりも上(新しい)に表示されることがあるので
必ずしもorigin devのローカルコピー版であるorigin/devは最新ではない という説明には納得がいきます。
>>381
冒頭に書いてあることは、リモートブランチもリモート追跡ブランチと同様に、ローカルリポジトリ上に存在する という理解でよいですか?
391: (テテンテンテン MMeb-HyOX) 2022/07/26(火)17:53 ID:aK/PU7Z0M(1) AAS
>>388
そうとは言ってないだろ
文書が読めるようになってからレスしろよ
392: (オッペケ Sr85-YGxf) 2022/07/26(火)19:18 ID:cKNkMgD2r(1) AAS
「タイピングが遅い」っていうのは自分のことを指していってるんじゃないかなぁ
たぶんある種の自虐かと
393(1): (アウアウウー Sa5d-fG1S) 2022/07/26(火)19:34 ID:wvY0b08ra(1/3) AAS
いやよく読もう
> いちいちターミナル立ち上げてタイプしてる人は何?
> しかもタイピングが遅いからまどろっこしくて仕方ないw
タイピングが遅いはどう考えても一般論じゃないんだから、身近にそういう変わった人がいるという質問風の愚痴だろ
「ほーん、で?」「それは大変だったね」「しらんがな」とか答えてあげるかスルーすればいい案件
394(1): (ワッチョイ d347-6W7N) 2022/07/26(火)19:38 ID:LlJvHA5t0(2/2) AAS
特定の誰かがタイピング遅いから全員gitコマンド使うなという主張だよ
395: (アウアウウー Sa5d-fG1S) 2022/07/26(火)19:42 ID:wvY0b08ra(2/3) AAS
被害妄想じゃね
396(1): (ワッチョイ 8b8f-G3rp) 2022/07/26(火)19:43 ID:ZFH6mJGl0(1) AAS
いちいちターミナルを立ち上げって書いてあるけど、普通ターミナルなんて立ち上げっぱなしだよなあ
397: (アウアウウー Sa5d-fG1S) 2022/07/26(火)19:49 ID:wvY0b08ra(3/3) AAS
開いてあるターミナルでコマンド履歴を呼び出したり git switch - 打ったりはコマンドが早いな
エイリアスがあればさらに早い
そのタイピングが遅い人はgitの練習かタイピングの練習がしたいんじゃね
398(1): (オイコラミネオ MM55-geFY) 2022/07/26(火)19:56 ID:StEemcQzM(1/2) AAS
>>390
はい。わたしは>>381には、リモートブランチとリモート追跡ブランチが同じ意味で書いてます。
前半は自分にはわからなかったです。
どのorigin/devが、logのorigin/devと同じと言っているんだろう。
origin/devは普通.git/refs/remotes/origin/devの省略形として使われるのであって、
git logの引数の説明に、refspecとかrevisionとか書いてあったらそうだろうと思います。
自分はそういうつもりで使ってますが、ちゃんと知りたいなら調べてみたらどうでしょう?
文脈によっては.git/refs/heads/origin/devかもしれないですね。これは難癖ですが。(つまりorigin/devっていう名前のローカルブランチ。でもコマンドミスで、たまに作ってしまう…)
上下前次1-新書関写板覧索設栞歴
あと 604 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.014s