何らかの理由で、私のgitブランチの一部に "remote / origin"という接頭辞が付いていることに気付きました:
BZ9
* master
remotes/origin/BZ8
remotes/origin/BZ9
remotes/origin/HEAD -> origin/master
remotes/origin/junit1
remotes/origin/master
たとえば、次のような違いがあります。"remotes / origin / BZ9"ブランチとBZ9ブランチ?明らかに、彼らはどちらも同じ概念的な枝に由来していますが、gitはそれらを区別することを検討しています。
回答:
回答№1は0リスティングでは、「BZ9」と「マスター」の両方あなたが自由に更新と削除を移動できるローカルブランチこれらのブランチのいずれかにいてコミットすると、最新のコミットを指すようにブランチが更新されます。
入力時に表示される接頭辞/接頭辞付きの名前 git branch -a
しかし、枝のようなものですが、あなたは考えることができますそれらを「読み取り専用」としています。これらのブランチは直接制御できません。フェッチすると自動的に設定され、再度フェッチ(またはプル)するまで変更されません。
これは、あなたのローカル開発を追跡する地元の支店とは異なり、リモート/起点の分岐は、あなたが引っ張ったサーバー( "起点")でのリモート開発を追跡するためです。
例えば、 "remotes / origin / junit1"は次のように言っています: "リモート起源リポジトリから最後にgitがフェッチされたときに、このコミットハッシュを指していたjunit1というブランチがありました。
あなたはそのリモートブランチをちょうどどんな場合でもチェックアウトすることができますしかし、このブランチにコミットすると、ブランチポインターはローカル進行を追跡することを目的としていないため、更新されません。これは、リモートのRepoの進行状況を追跡することを意図しています。
ローカルの進捗状況は、必要に応じて自由に作成、更新、削除するローカルブランチによって追跡されます。
同様に、他の誰かがあなたのレポからクローンを作成した場合、彼らがあなたからフェッチするとき、彼らはあなたからの2つの離れた枝を持っています: "遠隔地/起源/ BZ9"と "遠隔地/起源/マスター"。言い換えれば、あなたの地元の支店は、あなたからの川下の人のための遠隔地/起点支店になります。
そのため、すべてのリモート/起点ブランチもまた、アップストリームレポのローカルブランチの読み取り専用コピーです。