如何用Git命令对比最新合并操作与合并前的变更?
解决方法
情况1:刚完成合并且未产生新提交
如果你刚执行完合并操作,当前HEAD就是合并提交,直接用以下命令获取本次合并变更的JSON文件列表:
git --no-pager diff --name-only --relative HEAD^ HEAD *.json
HEAD^指向合并前分支的最后一个提交HEAD是本次合并生成的提交- 该命令会输出合并后变更的所有
.json文件
情况2:合并后已有其他提交
如果合并后又做了新的提交,需要先找到最新的合并提交SHA,再对比差异:
- 获取最新合并提交的SHA:
git log --merges -n 1 --format="%H"
- 用SHA替换
<merge-sha>,执行差异对比:
git --no-pager diff --name-only --relative <merge-sha>^ <merge-sha> *.json
说明
合并提交有两个父节点:
<commit>^是你合并目标分支的最后一个前置提交(合并前的状态)<commit>^2是被合并分支的最后一个提交
对比<commit>^和<commit>就能得到本次合并给目标分支带来的所有文件变更,正好符合你需要筛选变更文件打标签同步的需求。
内容的提问来源于stack exchange,提问作者Vanz
相关产品推荐
相关产品推荐

