使用Git,您如何发现当前版本和上一版本之间的差异?
git diff last version:HEAD
使用Git,您如何发现当前版本和上一版本之间的差异?
git diff last version:HEAD
当前回答
我不太理解“最后版本”的含义。
由于可以使用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上必须使用~字符而不是^。
其他回答
首先,使用“gitlog”列出存储库的日志。
现在,选择与两个提交相关的两个提交ID。您希望看到不同之处(例如,最顶级的提交和一些较旧的提交(根据您对当前版本和一些旧版本的期望))。
接下来,使用:
git diff <commit_id1> <commit_id2>
or
git difftool <commit_id1> <commit_id2>
这也适用于标记(如果需要查看所有更改,请删除下面的“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)
正如amalloy在评论中指出的,如果“当前版本和最后版本”是指最后一次提交和之前的提交,那么可以简单地使用
git show
最后一次提交与上次提交之间的差异(加上当前状态,如果有):
git diff HEAD~
甚至(更容易打字)
git diff @~
其中@是当前分支HEAD的同义词,~表示“给我提到的修订的父级”。
如果已添加但尚未提交,请使用缓存标志:
git diff --cached --color