使用Git,您如何发现当前版本和上一版本之间的差异?

git diff last version:HEAD

当前回答

以显示提交中的个别更改。

git show Head~0

显示提交中累积的更改。

git diff Head~0

其中0是所需的提交次数。

其他回答

你也可以这样做:

与上一次提交进行比较

git diff --name-status HEAD~1..HEAD

与当前和前两次提交进行比较

git diff --name-status HEAD~2..HEAD

正如amalloy在评论中指出的,如果“当前版本和最后版本”是指最后一次提交和之前的提交,那么可以简单地使用

git show

我不太理解“最后版本”的含义。

由于可以使用HEAD^访问上一次提交,我认为您正在寻找以下内容:

git diff HEAD^ HEAD

这也适用于:commithash

git diff $commithash^ $commithash

从Git1.8.5开始,@是HEAD的别名,因此您可以使用:

git diff @~..@

以下也将起作用:

git show

如果您想知道head和任何提交之间的区别,可以使用:

git diff commit_id HEAD

这将启动您的视觉差异工具(如果已配置):

git difftool HEAD^ HEAD

由于与HEAD的比较是默认的,因此可以省略它(如Orient所指出的):

git diff @^
git diff HEAD^
git diff commit_id

警告

@ScottF和@Panzercrisis在评论中解释说,在Windows上必须使用~字符而不是^。

如果希望对最后n次提交进行更改,可以使用以下选项:

git diff HEAD~n

因此,对于当前提交的最后5次提交(包括当前提交在内的计数),将是:

git diff HEAD~5

快速而简单,假设你是主人:

    git diff (checkout_id):file.txt file.txt

例子:

    git diff asdfioei91819280din198:file.txt file.txt