1. ホーム
  2. git

[解決済み] gitチェックアウトの本当の意味とは?

2022-03-09 06:08:39

質問

とは何ですか? checkout を使用することはできますか?

を一旦は知っているのですが checkout を特定のブランチに追加すると HEAD はそのブランチを指しています。しかし、これは本当に意味があるのでしょうか?そのブランチで作業できるということでしょうか?もしそうなら、ブランチをチェックアウトしなければ、私はそのブランチで作業することができないのでしょうか?

また remote checkout の意味は?どのように役立つのでしょうか?

どのように解決するのですか?

ご指摘の通りです。 HEAD は、コミットツリーのどこにいるのかを示すラベルです。 あるコミットから別のコミットへ移動するときに、一緒に移動します。 git checkout <commit> は、コミットツリー内を移動するための基本的なメカニズムで、フォーカスを移動させ ( HEAD ) を指定したコミットに移動します。

コミットは、コミットハッシュ、ブランチ名、タグ名、相対構文 ( HEAD^ , HEAD~1 など)などがあります。 チェックアウトをブランチの変更とみなすと便利なことが多く、その観点から動作するオプションもありますが、それらはすべてコミットを参照しています。

コミットをチェックアウトすることは、そのコミットを移動させる以外にいくつかの副作用があります。 HEAD を使用します。

  • 作業ディレクトリがチェックアウトされたコミットの状態に更新されます。
  • ブランチ名が指定された場合、チェックアウトによってそのブランチがアクティブになります。 アクティブなブランチは、追加された新しいコミットとともに移動します。
    • と共に -b オプションを指定すると、現在のコミットに基づいて新しいブランチが作成され、アクティブになります。
    • を指定すると --track オプションは、チェックアウトしたブランチにリモートブランチを認識させることができます。
    • を使って --orphan オプションを使用すると、新しいブランチが作成されます (たとえば -b しかし、既存のコミットには基づいていません。

この他にもいくつかのオプションがあり、それらは git チェックアウトマニュアルページ これらはすべて、あるコミットから別のコミットへの移動が中心となっています。 HEAD .