[過去ログ]
Git 18 (1002レス)
Git 18 http://mevius.5ch.net/test/read.cgi/tech/1650651945/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
380: デフォルトの名無しさん (ワッチョイ 13f2-geFY) [sage] 2022/07/25(月) 23:35:48.37 ID:ahGXQIib0 >>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でリモートブランチを作ることができる。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/380
381: デフォルトの名無しさん (ワッチョイ 13f2-geFY) [sage] 2022/07/25(月) 23:37:25.77 ID:ahGXQIib0 >>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のみで通常呼ばれる。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/381
382: デフォルトの名無しさん (ワッチョイ 13f2-geFY) [sage] 2022/07/25(月) 23:38:28.96 ID:ahGXQIib0 >>381 merge branchAは、merge refs/heads/branchAの省略形で、後者で書いてもマージできる。 refsであればマージできる。 上に書いたように、refsはリモートレポジトリからコピーしてきたもの(origin/...)と、自分で作ったref(ローカルブランチなど)のことだから、 merge branchAでも、merge origin/branchBでも正しい表現。 そのときそれらが指しているコミットとマージする。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/382
383: デフォルトの名無しさん (ワッチョイ 13f2-geFY) [sage] 2022/07/25(月) 23:39:16.54 ID:ahGXQIib0 >>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などを読んでみて。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/383
384: デフォルトの名無しさん (ワッチョイ 13f2-geFY) [sage] 2022/07/25(月) 23:48:16.63 ID:ahGXQIib0 >>383 誤記あったので訂正。 > fetch origin/devと書くことが → fetch origin origin/devと書くことが 以上。 ちなみにfetch origin/devは必ず失敗すると思います。 その位置にはrefではなくてリモートレポジトリ名を書くわけだが、origin/devってい名前は作らないと(多分作れない)思うので。試したことないけど。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/384
385: デフォルトの名無しさん (ワッチョイ 13f2-geFY) [sage] 2022/07/25(月) 23:59:56.84 ID:ahGXQIib0 refspec使った例で、自分がたまにやるやつを紹介して補足すると、 pushの例になるけど、 git push origin @~2:developとかは使うかな。 update update ...っていくつかコミットしたあとに、2つ前までのやつならちゃんと作れてるから、それをpushしておこうなんてときに。 fetch方向だとそういう工夫は必要ないと思うから、追跡してるとおりに取ってきちゃうけど。 http://mevius.5ch.net/test/read.cgi/tech/1650651945/385
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.031s