Git のキャレット (^) 文字は何を意味しますか? 質問する

Git のキャレット (^) 文字は何を意味しますか? 質問する

私は見た質問に対する答えここでは、git で削除されたファイルを復元するのに役立ちます。

解決策は

git checkout <deleting_commit>^ -- <deleted_file_path>

キャレット文字 ( ^) は何をしますか? Git で非常に便利な機能を果たしているのを他の場所で見たことがあります。魔法のようです。誰か、私にキャレット文字の秘密を明かして、何をするのか教えてください。

ベストアンサー1

HEAD^現在のブランチの先端の最初の親を意味します。

gitコミットは複数のコミットを持つことができることを覚えておいてくださいすぐにparent.HEAD^は の短縮形でありHEAD^1HEAD^2必要に応じて などを指定することもできます。複数の親を持つコミットは、マージまたはマージコミットの成果物です。

だけでなく、任意のコミットの親にアクセスできますHEAD。また、世代を遡って到達可能な祖先に移動することもできます。たとえば、 はmaster~2マスター ブランチの先端の祖父母を意味し、あいまいな場合は最初の親を優先します。これらの指定子は任意に連鎖できます。たとえば、次のようになります。

  • HEAD^^^、、HEAD~~~またはHEAD~3すべてが、3 世代前の曽祖父母のコミットを指します。
    • HEAD^3は異なります。これは、マージコミットの 3 番目の直接の親を意味し、生物学との類似性を強めます。
  • topic~3^2ブランチのタグまたは先端から始まりtopic、3世代前まで遡り、そのマージコミット(曽祖父の)2番目の直接の親、つまり曽祖父を選択します。父親Git の歴史が主に母系であると考える場合。

参照:

おすすめ記事