2011-08-02 18 views
10

1つのコマンドでコミットIDの詳細とともにファイルのdiffの詳細を取得する方法はありますか?現在、 "git diff tag1..tag2"は2つのタグ間のコード変更全体を示しますが、コミットIDとコミット理由はわかりません。私は "git log"を使用すると、2つのタグを比較するときに気にしない変更をコミット変更全体に渡します。単一コマンドで変更をコミットしてgit diffを取得する方法

+0

? 「コミットIDとともにファイルの差分の詳細」とはどういう意味ですか? –

+0

確かに.. git diffコマンドのように私に何かを与えます diff --git a/opengl/libagl/egl.cpp b/opengl/libagl/egl.cpp インデックス662a1fa..64f9766 100644 --- a/opengl /libagl/egl.cpp +++ b/opengl/libagl/egl.cpp その後に正確なコードの変更(追加/削除)が行われます。 しかし、この変更には同じ差分ファイルに必要なコミットIDとコミット理由もあります。だから、もし私が変更を見ているなら、私はそれの理由も見ることができます。そのような詳細は "git log"を介して取得することは可能ですが、 "git log tag1..tag2"を実行すると、git diffの一部ではないファイルで私と全く違う結果が得られます – Vinz

+0

コミットメッセージ、コミットハッシュ、あなたのコミットツリーで? –

答えて

16

が、この変更はまた、私はここで少し混乱があると思いIDをコミットし、

で同じdiffファイルを私が欲しい理由をコミットしています。 git-diffは1つのコミットと別のコミットとの違いを出力します。その違いは1つのコミットだけではなく、指定した範囲の一連のコミットを表します(例では662a1fa..64f9766)。つまり、複数のコミットIDとメッセージがあります。タグが離れていれば、おそらく数千にもなります。

git diffが関連するすべてのコミットメッセージを出力する場合、diffのどの部分が各コミットIDとコミットメッセージに関連付けられているかを伝える良い方法がありません。これがgit logが存在する理由です。

Gitログは、指定した範囲内で次々に各コミットを表示するので、コミットメッセージが表示されます。

git-diffはaとzの違いを示しています。
git-logはzになるために必要な旅を表示します。念頭に置いて

、私は、これはあなたが探しているものはおそらくです推測している:あなたは、あなたの質問を少し明確にすることができ

git log --color -p --full-diff tag1..tag2