checkout
Git の s とは何ですか?
checkout
特定のブランチに対してこれを行うと、HEAD
がそのブランチを指すことはわかっています。しかし、それは実際には何を意味するのでしょうか? それは、そのブランチで作業できるということでしょうか? そうであれば、ブランチをチェックアウトしないと、そのブランチで作業できないということでしょうか?
また、remote checkout
それはどういう意味ですか? どのように役立ちますか?
ベストアンサー1
ご指摘のとおり、HEAD
はコミット ツリー内の位置を示すラベルです。 コミット間を移動すると、このラベルも一緒に移動します。 はコミット ツリー内を移動するための基本的なメカニズムであり、フォーカス ( ) を指定したコミットにgit checkout <commit>
移動します。HEAD
HEAD^
コミットは、コミット ハッシュ、ブランチ名、タグ名、相対構文 ( 、など) など、さまざまな方法で指定できますHEAD~1
。チェックアウトをブランチの変更と見なすと便利な場合が多く、その観点から機能するオプションがいくつかありますが、それらはすべてコミットを参照します。
コミットをチェックアウトすると、移動する以外にもいくつかの副作用がありますHEAD
。
- 作業ディレクトリは、チェックアウトされたコミットの状態に更新されます。
- ブランチ名が指定されている場合、チェックアウトはそのブランチをアクティブにします。アクティブ ブランチは、追加された新しいコミットとともに移動します。
- この
-b
オプションを使用すると、現在のコミットに基づいて新しいブランチが作成され、アクティブになります。 - オプションを使用すると、
--track
チェックアウトされたブランチにリモートブランチを認識させることができます - オプションを使用すると、
--orphan
新しいブランチが作成されます ( の場合と同様-b
) が、既存のコミットに基づくものではありません。
- この
他にもいくつかオプションがありますが、詳しくはgit チェックアウト マニュアルページこれらはすべて、あるコミットから別のコミットへの移動を中心に展開されますが、移動に加えてその移動がどのような影響を与えるかが異なりますHEAD
。