checkout
git の sとは何ですか?
checkout
特定のブランチに対して行うと、そのブランチを指すことがわかりますHEAD
。しかし、それは本当にどういう意味ですか?そのブランチで作業できるということですか?はいの場合、ブランチをチェックアウトしないと作業できませんか?
また、どういうremote checkout
意味ですか?どのように便利ですか?
checkout
git の sとは何ですか?
checkout
特定のブランチに対して行うと、そのブランチを指すことがわかりますHEAD
。しかし、それは本当にどういう意味ですか?そのブランチで作業できるということですか?はいの場合、ブランチをチェックアウトしないと作業できませんか?
また、どういうremote checkout
意味ですか?どのように便利ですか?
お気づきのように、HEAD
はコミットツリーのどこにいるかを示すラベルです。あるコミットから別のコミットに移動すると、一緒に移動します。 git checkout <commit>
は、コミットツリー内を移動し、フォーカス(HEAD
)を指定されたコミットに移動するための基本的なメカニズムです。
HEAD^
コミットは、コミットハッシュ、ブランチ名、タグ名、相対構文( 、HEAD~1
など)など、さまざまな方法で指定できます。チェックアウトがブランチを変更していると考えると便利なことがよくあり、その観点から機能するオプションがいくつかありますが、それらはすべてコミットを参照します。
コミットをチェックアウトするには、移動以外の副作用がありHEAD
ます。
-b
すると、現在のコミットに基づいて新しいブランチが作成され、アクティブになります。--track
、チェックアウトされたブランチにリモートブランチを認識させることができます--orphan
(のように)新しいブランチが作成されます-b
が、既存のコミットに基づくことはありません。git checkoutのmanページで読むことができるオプションがさらにいくつかあります。これらはすべて、あるコミットから別のコミットへの移動を中心に展開します。移動に加えて、その移動がどのような効果をもたらすかを変えるだけHEAD
です。
「チェックアウトする」とは、リポジトリから特定のコミットを取得し、関連するファイルとディレクトリ ツリーの状態を作業ディレクトリに再作成することを意味します。
ブランチ ヘッドではないコミット (例: ) をチェックアウトするとgit checkout HEAD~2
、いわゆるデタッチドヘッドになります。ここでコミットを作成できますが、別のブランチに切り替えると、それらのコミットはブランチ名では回復できなくなり、しばらくするとガベージ コレクターによって削除されることさえあります。