我在Ubuntu 10.04 (Lucid Lynx)上使用Git。

我已经向我的主人许下了一些承诺。

但是,我想知道这些提交之间的区别。它们都在我的主分支上。

例如:

commit dj374
made changes

commit y4746
made changes

commit k73ud
made changes

我想知道k73ud和dj374的区别。然而,当我执行以下操作时,我无法看到我在k73ud中所做的更改。

git diff k73ud..dj374 > master.patch

当前回答

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

git diff a..b

注意,a和b的差值与b和a的差值相反。

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

git diff

如果您希望以后能够查看差异,可以将其保存在文件中。

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

其他回答

 1. git diff <commit-id> <commit-id>
 2. git diff HEAD^ HEAD     -(HEAD = current branch’s tip),( HEAD^ = version before the last commit)
 3. git diff HEAD^ HEAD — ./file     (comparison to specified file)
 4. git diff HEAD~5 HEAD           - (HEAD~5 refers to the last 5 commits.)

我使用gitk来查看区别:

gitk k73ud..dj374

它有一个图形用户界面模式,因此审查更容易。

对于最后两次提交

git diff HEAD~1 HEAD

通过扩展来比较2个提交,例如

git diff HEAD~6 HEAD~3

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

git diff a..b

注意,a和b的差值与b和a的差值相反。

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

git diff

如果您希望以后能够查看差异,可以将其保存在文件中。

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

下面的命令在Ubuntu 20.04和git v2.25.1上完美地工作:

git diff <base-commit-id> <target-commit-id>