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

git diff last version:HEAD

当前回答

如果上一个版本意味着最后一个标签,而当前版本意味着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

其他回答

我在安装了EclipseEGit插件的EclipseIDE中使用Bitbucket。

我将文件与任何版本的历史记录(如SVN)进行比较。

菜单项目资源管理器→ 文件→ 右键单击→ 团队→ 在历史中显示。

这将带来该文件上所有更改的历史记录。现在按住Ctrl键单击并选择任意两个版本→ “相互比较”。

如果上一个版本意味着最后一个标签,而当前版本意味着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

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

git show

这也适用于标记(如果需要查看所有更改,请删除下面的“uniq”和其他部分):

 git diff v1.58 HEAD 

下面是相同的,这对于单片存储库中的微服务的持续集成(CI)很有用:

git diff v1.58 HEAD  --name-only | sort -u | awk 'BEGIN {FS="/"} {print $1}' | uniq
<Folder Name> 

(信贷-https://dzone.com/articles/build-test-and-deploy-apps-independently-from-a-mo)

最后一次提交与上次提交之间的差异(加上当前状态,如果有):

git diff HEAD~

甚至(更容易打字)

git diff @~

其中@是当前分支HEAD的同义词,~表示“给我提到的修订的父级”。