git diff COMMIT
を実行すると、そのコミットとHEADの間の変更がわかります(私の知る限り)が、その単一のコミットによって行われた変更を確認したいと思います。
私はdiff
/log
にそのような出力を与える明白なオプションを見つけていません。
特定のCOMMIT
ハッシュの差分を見るには:
git diff COMMIT~ COMMIT
は、そのCOMMIT
の祖先とCOMMIT
の違いを示します。コマンドの詳細については git diff のマニュアルページを、~
の表記法とその友達については gitrevisions を参照してください。
あるいは、git show COMMIT
は非常によく似たことをします。 (コミットのデータ。差分を含みますが、マージコミットには使用できません。) git showのマンページ を参照してください。
" 親とのgit commitの差分の略記 "で述べたように、 git diff
を次のように使うこともできます。
git diff COMMIT^!
または
git diff-tree -p COMMIT
Git showでは、(diffだけに焦点を合わせるために)次のことが必要になります。
git show --color --pretty=format:%b $COMMIT
COMMIT
パラメータはcommit-ishです。
コミットオブジェクトを再帰的に参照することができる コミットオブジェクト または オブジェクト 。コミットオブジェクト、コミットオブジェクトを指す タグオブジェクト 、コミットオブジェクトを指すタグオブジェクトを指すタグオブジェクトなどです。
コミット風を参照するには gitrevision "SPECIFYING REVISIONS" を参照してください。
また、 " Gitでツリーっぽいことはどういう意味ですか? "も参照してください。
この簡単な方法を試すこともできます。
git show <COMMIT>
git show
は最新のコミットで行われた変更を示します。
git show HEAD
と同等です。
git show HEAD~1
は1コミット前に戻ります。
まず、コミットIDを取得します。
git log #to list all
または
git log -p -1 #last one commit id
コミットIDをコピーします。
特定のコミットからの変更をリストするために2つの方法を使用します。
方法1:
git diff commit_id^! #commit id something like this 1c6a6000asad012
方法2:
git show commit_id
For example: git show 1c6a600a
git show <commit_sha>
これはそのコミットの内容を正確に示しています。 2つのコミットシェアの間にスペースを入れるだけで範囲を指定できると思います。
git show <beginning_sha> <ending_sha>
あなたの機能ログがすべて一列に並んでいるので、頻繁にリベースしているなら、これはかなり役に立ちます。
git-diff(1) のmanページから:
git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>
真ん中の3番目のものを使う:
git diff [options] <parent-commit> <commit>
同じmanページの一番下、 例のセクション :からも。
$ git diff HEAD^ HEAD <3>
最後のコミット前と最後のコミット前のバージョンを比較してください。
確かに、それは少し混乱を招くように表現されています。
最新のコミットとその前のコミットを比較します。
以下がその仕事をしているようです。マージによってもたらされたことを示すためにそれを使用します。
git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>
他の可能性:
git log -p COMMIT -1
git difftool COMMIT^ <commit hash>
あなたがあなたのdifftoolを設定したならば、それも可能です。
configure difftool またはマニュアルページ here の使い方
さらに、git diff-tree --no-commit-id --name-only -r <commit hash>
を使用して、特定のコミットハッシュでどのファイルが変更またはコミットされたかを確認できます。
親コミットとの差分を見るためにgit diff HEAD HEAD^1
を使うことができます。
ファイルのリストだけを見たい場合は、--stat
オプションを追加してください。
投稿者と時間をコミットで確認するにはgit show COMMIT
を使用してください。これは次のようになります。
commit 13414df70354678b1b9304ebe4b6d204810f867e
Merge: a2a2894 3a1ba8f
Author: You <[email protected]>
Date: Fri Jul 24 17:46:42 2015 -0700
Merge remote-tracking branch 'Origin/your-feature'
どのファイルが変更されたのかを知りたい場合は、git diff --stat a2a2894 3a1ba8f
の上のMerge行の値を使用して以下を実行してください。
実際の差分を見たい場合はgit --stat a2a2894 3a1ba8f
を実行してください。
特定のコミットとその最後のコミットを比較するための下記のコマンドが好きです。
git diff <commit-hash>^-
例:
git diff cd1b3f485^-
私はWindows 10上でGitバージョン2.6.1.windows.1を実行しているので、Nevikの答えを少し修正する必要がありました(キャレットではなくチルダ):
git diff COMMIT~ COMMIT
もう1つの選択肢は、キャレットを引用することです。
git diff "COMMIT^" COMMIT
私はいつもやる:
git diff HEAD~1
最後のコミットに関する変更を表示します。もっと多くのコミットがある場合は、1を1に増やして、表示したいコミットの数と比較してください。
このコマンドはGitの親のコミットハッシュを取得します。
git log -n 2 <commit-hash>
その後git diff-tool <commit-hash> <parent-commit-hash>
例:
bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3
commit 7f65b9a9d3820525766fcba285b3c678e889fe3b
Author: souparno <[email protected]>
Date: Mon Jul 25 13:17:07 2016 +0530
CSS changed to maintain the aspect ratio of the channel logos and to fit them properly.
commit c3a61f17e14e2b80cf64b172a45f1b4826ee291f
Author: souparno <[email protected]>
Date: Mon Jul 25 11:28:09 2016 +0530
The ratio of the height to width of the channel images are maintained.
この後
git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f
完全な変更をチェックするために:
git diff <commit_Id_1> <commit_Id_2>
変更/追加/削除されたファイルのみをチェックする場合:
git diff <commit_Id_1> <commit_Id_2> --name-only
_ note _ :間でコミットせずにdiffをチェックするために、コミットIDを置く必要はありません。