1

たくさんのチェックアウト操作を実行した後、これらのチェックアウトの前に元のHEADがどれであったかを思い出せませんでした。どうすればHEADを見つけることができますか?

4

2 に答える 2

5

git reflogHEAD が変更された理由と、どのコミットに対して変更されたかを調べるために使用します。

于 2013-01-06T04:31:36.383 に答える
-1

git リポジトリは、いくつかのコミットにいくつかのラベルが付けられたコミットのツリーです。これらのラベルは、ツリーの特定のブランチに名前を付ける方法です。デフォルトでは、最初は と の 2 つのラベルがmasterありHEADます。 masterはツリーのメイン ブランチを示し、「HEAD」はコミット ツリーで現在どのコミットにいるかを示すラベルです。

そうは言っても、ツリー上のあるコミットから別のコミットに移動するHEADときは、常にあなたがいる場所です。git checkoutHEAD

私の知る限り、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もう一度簡単に見つけられるように、コミットを追加することを検討してください。

これで問題が解決しない場合は、特定の問題の詳細を投稿してください。

于 2013-01-06T04:12:39.337 に答える