たくさんのチェックアウト操作を実行した後、これらのチェックアウトの前に元のHEADがどれであったかを思い出せませんでした。どうすればHEADを見つけることができますか?
2 に答える
git reflog
HEAD が変更された理由と、どのコミットに対して変更されたかを調べるために使用します。
git リポジトリは、いくつかのコミットにいくつかのラベルが付けられたコミットのツリーです。これらのラベルは、ツリーの特定のブランチに名前を付ける方法です。デフォルトでは、最初は と の 2 つのラベルがmaster
ありHEAD
ます。 master
はツリーのメイン ブランチを示し、「HEAD」はコミット ツリーで現在どのコミットにいるかを示すラベルです。
そうは言っても、ツリー上のあるコミットから別のコミットに移動するHEAD
ときは、常にあなたがいる場所です。git checkout
HEAD
私の知る限り、HEAD
ラベルがツリー内でどのように移動するかを追跡することはできません。
ただし、ツリー全体のどこにいるかをより明確に確認したい場合は、このgit log
コマンドを使用すると、これをうまく表示できます。
私が頻繁に使用するコマンドの例をいくつかgit log
以下に示します。それぞれに、親コミットの上に子コミットがあるコミットが一覧表示されます
これには、現在使用しているブランチのすべてのコミットが一覧表示され、ブランチの名前と、コミットが互いにどのように関連しているかを示すグラフが左側に表示されます。
git log --oneline --decorate=short --graph
上記と同じですが、現在の場所に接続されているツリー内のすべてのコミットを表示します。
git log --oneline --decorate=short --graph --all
これは、ラベルが付けられたコミットのみを示すものです
git log --oneline --decorate=short --simplify-by-decoration --graph --all
別の種類のラベルがありgit tag
ます。tag
は、何らかの理由で重要なコミットをマークするために作成できます。探しているコミットが見つかったら、tag
もう一度簡単に見つけられるように、コミットを追加することを検討してください。
これで問題が解決しない場合は、特定の問題の詳細を投稿してください。