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

git diff last version:HEAD

当前回答

假设“当前版本”是工作目录(未提交修改),“最后版本”是HEAD(当前分支的最后提交修改)

git diff HEAD

以下内容归功于用户Cerran。

如果在提交时总是使用-a跳过临时区域,那么可以简单地使用gitdiff。

总结

gitdiff显示未分页的更改。gitdiff——缓存显示分段更改。git diff HEAD显示所有更改(暂存和未暂存)。

来源:git diff(1)手册页–Cerran

其他回答

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

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

例子:

    git diff asdfioei91819280din198:file.txt file.txt

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

git diff HEAD~n

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

git diff HEAD~5

如果上一个版本意味着最后一个标签,而当前版本意味着HEAD(当前状态),那么这只是与上一个标签的区别:

正在查找标记:

$ git tag --list
...
v20.11.23.4
v20.11.25.1
v20.11.25.2
v20.11.25.351

最后一个标签将是:

$ git tag --list | tail -n 1
v20.11.25.351

将其放在一起:

tag=$(git tag --list | tail -n 1)
git diff $tag

你也可以这样做:

与上一次提交进行比较

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

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

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

假设“当前版本”是工作目录(未提交修改),“最后版本”是HEAD(当前分支的最后提交修改)

git diff HEAD

以下内容归功于用户Cerran。

如果在提交时总是使用-a跳过临时区域,那么可以简单地使用gitdiff。

总结

gitdiff显示未分页的更改。gitdiff——缓存显示分段更改。git diff HEAD显示所有更改(暂存和未暂存)。

来源:git diff(1)手册页–Cerran