FETCH_HEADフェッチした直後にチェックアウトされないのはなぜですか? オリジンのトラッキング ブランチをローカル マスターにマージした後にのみチェックアウトされるのはなぜですか?
FETCH_HEADそれ自体はブランチを参照しません。最後にフェッチされた SHA1 のみを記憶します。
ブランチを参照していないため、実際にはチェックアウトされていません (チェックアウトされるべきではありません)。
ただし、追跡ブランチをブランチにマージすると (master更新HEADされたマスターを指す) 更新されます。そのブランチはチェックアウトされます。
マージが「早送り」のものである場合、チェックアウトされたブランチは同じ SHA1 を参照し、「チェックアウトされた」という印象を与えHEADます(実際にはそうではありません)。FETCH-HEADFETCH_HEAD
つまり、次の図では次のようになります。

FETCH_HEAD現在チェックアウトされているブランチと同じ SHA1 を参照しているという理由だけでHEADmaster、「チェックアウト済み」のチェックマークが付いています(こちら)。
つまり、新しいコミットを行う場合:
FETCH_HEADチェックアウトされたティックはもうありません (最後にフェッチされた SHA1 を引き続き参照します)。それが、「実際には」チェックアウトされていないと私が言う理由です (「特定の SHA1 への固定参照であるため、新しいコミット後にチェックアウトされたままにはならないという意味で)」
HEADブランチは新しい SHA1 を参照しmaster、チェックアウトされたティックを保持します。
FETCH_HEADただし、 SHA1を直接チェックアウトする場合(マージする前にmaster: Egit ユーザー ガイドには、参照がまだチェックアウトされていない場合に実行できると記載されています)、次のようになります。
FETCH_HEADまだ「チェックアウト」されている
- 同じ
HEAD
- しかし
master(または他のブランチ)はもうチェックアウトされません:これはDETACHED HEAD 状況です
チェックアウトした の上に新しいコミットを作成する場合FETCH_HEAD:
FETCH_HEADチェックアウトされなくなります (最後にフェッチされた SHA1 で修正されたままになるため)
- HEAD は、チェックアウトされた新しいコミットを指します。
- 「チェックアウト」されたブランチはありません: デタッチされた HEAD。
の上で行われたチェックアウトされたコミットを開き、FETCH_HEADそこからブランチを作成する必要があります。

(記事「Git レッスン: 分離した頭に注意する」より)
結論は:
参照に「checked-out tick」が表示されるたびに、現在チェックアウトされている参照(コミットまたはブランチ)と同じ SHA1 を参照してFETCH_HEADいるためです。
それ自体がチェックアウトされているからではありません。その上で新しいコミットを行うと、チェックアウトされなくなります。
FETCH_HEAD