「git branch -r」を実行して取得します
原点/支店1
オリジン/ブランチ2
man ページの -r オプションは、「(-d と一緒に使用した場合) リモート追跡ブランチを一覧表示または削除します」。したがって、origin/branch1 と origin/branch2 はリモート追跡ブランチとして知られています。ただし、リモート追跡ブランチに直接コミットすることはできません (代わりに匿名ブランチが作成されます)。リモート トラッキング ブランチは、'git fetch' の実行時にリモート ブランチを単純に追跡します。
ここで、セマンティクスが少しぼやけます。私なら
git checkout -b branch1 origin/branch1
次の出力が得られます。
これが私の質問です。何が私を混乱させているのかを明確にするために、可能な限り詳細に説明します...ブランチ1を起点からリモートブランチbranch1を追跡するように設定したおかげで、「branch1」はリモート追跡ブランチと見なされますか? もしそうなら、これは「git branch -r」を実行したときに「origin/branch1」がリモート追跡ブランチとして既にリストされていたという事実と矛盾しませんか? 私の理解では、ローカル (トピック) ブランチまたはリモート追跡ブランチのいずれかが存在します。「git checkout -b branch1 origin/branch1」を実行すると、フェッチによってリモート ブランチを追跡するローカル (トピック) ブランチ (コミットを追加できるブランチ) が作成されますか? 「git branch」を実行すると「* branch1」が返され、「git branch -r」を実行しても「origin/branch1」と「origin/branch2」が返されるようになりました。コミットを追加し、origin/branch1 を追跡するために branch1 を作成しました。「git branch」の出力からの「branch1」、または「git branch -r」の出力からの「origin/branch1」のリモート追跡ブランチと見なされるのはどれですか?