显示提交之间的差异

我在Ubuntu 10.4上使用git。

我向主人做了一些承诺。

但是,我想要了解这些提交之间的区别。 他们都在我的主分支。

例如:

commit dj374 made changes commit y4746 made changes commit k73ud made changes 

所以我想知道k73ud和dj374的区别。 但是,当我做了以下,我看不到我在k73ud做的变化。

 git diff k73ud..dj374 > master.patch 

非常感谢您的任何build议,

你试过了吗

 git diff k73ud^..dj374 

确保在所得到的差异中包含k73ud所有变化?

git diff比较两个端点( 而不是提交范围 )。
由于OP要查看k73ud引入的变化,他/她需要在k73udk73ud^ (或k73ud^1k73ud~ )的第一个父提交之间进行k73ud
这样, diff结果将包括 k73ud家长以来的变化(意味着包括k73ud本身的变化),而不是 k73ud (直到dj374 )引入的变化。

要查看之间的区别…

…你的工作副本和分期区域:

 % git diff 

…中转区和最新的承诺:

 % git diff --staged 

…你的工作副本并提交4ac0a6733:

 % git diff 4ac0a6733 

…提交4ac0a6733和最新的提交:

 % git diff 4ac0a6733 HEAD 

…提交4ac0a6733并提交826793951

 % git diff 4ac0a6733 826793951 

有关更多解释,请参阅官方文档 。

如果你想查看每个提交引入的更改,请尝试“git log -p”

我使用gitk来查看差异。

 gitk k73ud..dj374 

它有一个GUI模式,使审查更容易。

  1. gitk --all
  2. select第一个提交
  3. 右键点击另一个,然后diffselect→this

要查看2个不同的提交(让我们称之为a,b)之间的差异,使用

 git diff a..b 

*请注意,a和b之间的差异与b和a相反。

要查看上次提交和尚未提交的更改之间的差异,请使用

 git diff 

如果您想稍后再回到diff,可以将其保存在文件中。

 git diff a..b > ../project.diff 

检查这个命令是否有区别。

 git difftool --dir-diff