コミットしようとすると、最後のコミット以降に何が変わったかを正確に思い出せないことがあります。コードの現在の状態と最後のコミットの差分を確認するにはどうすればよいですか?
コミットしようとすると、最後のコミット以降に何が変わったかを正確に思い出せないことがあります。コードの現在の状態と最後のコミットの差分を確認するにはどうすればよいですか?
回答:
まだ(を使用してgit add
)インデックスにファイルを追加していない場合は、単に追加してください。
git diff
これにより、作業ツリーとインデックスの違いが表示されます。
インデックスにファイルを追加した場合は、インデックスと最後のコミット(HEAD)の違いを表示するためにこれを行う必要があります。
git diff --cached
最後に、最新のコミット(HEAD
)と比較して作業ツリーで行われた変更を確認したい場合は、(Carlosが指摘しているように)実行できます。
git diff HEAD
これらの変更は、の組み合わせであるgit diff
とgit diff --cached
。
git diff
1つのdiffメッセージでインデックスの状態と前のコミットを行うことは可能ですか?
git diff --cached HEAD^
:)
コミットを行ったばかりの場合、または現在の状態と比較して最後のコミットで何が変更されたかを確認したい場合(クリーンな作業ツリーがあると仮定)、次を使用できます。
git diff HEAD^
これにより、HEADと直前のコミットが比較されます。1つもすることができます
git diff HEAD^^
2コミット前のプレイの状態と比較します。現在の状態と特定のコミットの違いを確認するには、次のようにします。
git diff b6af6qc
b6af6qc
コミットハッシュの例はどこにありますか。
HEAD^
のコミットの前のコミットです。
gitに、現在/最後のコミットを比較するように依頼しますHEAD
。これは、の省略形です。
したがってgit diff HEAD
、ワークツリーの現在の状態を現在のコミットと比較します。
これは、違いとどのファイルが変更/変更されたかも示します。
$ git status
インデックスファイルと現在のHEADコミットが異なるパス、作業ツリーとインデックスファイルが異なるパス、およびgitによって追跡されない(およびgitignore(5)によって無視されない)作業ツリー内のパスを表示します。 )。1つ目は、gitcommitを実行してコミットするものです。2番目と3番目は、gitcommitを実行する前にgitaddを実行することでコミットできるものです。
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
これは私にも役立ちます:
# The last one
git diff HEAD~1 HEAD
# The last but one, etc...
git diff HEAD~2 HEAD~1
これは通常、線形履歴に対して機能します。マージコミットもある場合、これはよりトリッキーになる可能性があります。このドキュメントを調べて、わかりやすく完全な説明を確認することをお勧めします。特に、コミットツリーの図の例を参照してください。
git diff
ワークツリーをHEADではなくインデックスと比較します。