あなたのリストでは、「BZ9」と「master」はどちらもローカル ブランチであり、自由に移動、更新、削除できます。これらのブランチのいずれかにいてコミットを行うと、ブランチが更新されて最新のコミットがポイントされます。
ただし、入力時に表示されるリモート/オリジンのプレフィックス付きの名前git branch -a
は、ブランチのようなものですが、「読み取り専用」と考えることができます。直接制御しないこれらのブランチは、フェッチ時に自動的に設定され、再度フェッチ (またはプル) するまで変更されません。
これは、ローカル開発を追跡するローカル ブランチとは異なり、remotes/origin ブランチは、プル元のサーバー ("origin") でリモート開発を追跡するためです。
たとえば、「remotes/origin/junit1」は次のように言っています。
そのリモート ブランチは他のブランチと同じようにチェックアウトできますが、このブランチにコミットすると、ブランチ ポインターは更新されません。これは、ローカルの進行状況を追跡するためのものではなく、リモート リポジトリの進行状況を追跡するためのものです。
ローカルの進行状況は、必要に応じて自由に作成、更新、削除できるローカル ブランチによって追跡されます。
同様に、他の誰かがあなたのレポからクローンを作成した場合、彼らがあなたからフェッチすると、あなたからの 2 つのリモート ブランチが作成されます: "remotes/origin/BZ9" と "remotes/origin/master"。つまり、あなたのローカル ブランチは、あなたの下流にいる誰かのリモート/オリジン ブランチになります。
リモート/オリジン ブランチもこれですべてです。これらは、アップストリーム リポジトリのローカル ブランチの読み取り専用コピーです。