Git の HEAD

1. Git HEAD の保存場所

HEAD は.git/HEAD、現在のブランチの名前を保存するファイルを参照します。このファイルを開いて確認できます。

ref: refs/heads/master

このことから、現在は master ブランチ上にあることがわかります。

さらに下に進み、refs/heads/masterファイルを開くと、パスワードの文字列が表示されます。

7e136f508b982790db5686482075c60ee3ee4fed

これは、master ブランチ上の最新のコミットのコミット ID です。

実際、以下の図を見ると、ヘッダーについての理解が一目瞭然です。

ここに画像の説明を挿入します

2. Git HEADの役割

2.1. Git HEAD の最初の機能: 現在のブランチがどのブランチからのものかを表示します

git コミット ログをチェックすると、以下に示すように head が頻繁に発生します。

$ git log
commit c4f9d71863ab78cfca754c78e9f0f2bf66a2bd77 (HEAD -> master)

上に示したように、HEAD -> master は、現在 master ブランチ上にいることを示します。

2.2. Git HEAD の 2 番目の機能: 現在のブランチの最新の送信のコミット ID を参照します。

コードをコミットして送信した後、このコミットの内容が間違っていることが判明することがありますが、この状況には 2 つの解決策があります。

解决方法1:修改错误内容,再次commit一次

解决方法2:使用git reset命令撤销这一次错误的commit

この時点でヘッドが出てきます。以下に示すように、リセットと組み合わせて使用​​されることがよくあります。

$ git reset HEAD <file>

に相当:

$ git reset commit_id_latest <file>   //commit_id_latest 需替换为实际的最新的commit it 

head は現在のブランチの最新のコミットされたコミット ID を表すため、上記のコマンドの目的は、ファイルを指定されたコミット ID に復元することです。

さらに、前回送信された変更は次の方法で確認できます。

git diff  HEAD^ HEAD

HEAD^ は最後から 2 番目の送信、つまり最新の送信を意味します
HEAD^ は最後から 2 番目の送信を意味します
HEAD^^ は最後から 2 番目の送信を意味します

おすすめ

転載: blog.csdn.net/m0_45406092/article/details/132581163