You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无 squash 选项的快进合并后,如何用Git命令查看变更文件?

快进合并后获取变更文件的CI环境解决方案

情况1:CI脚本中执行合并操作

如果合并操作是在CI流程里执行的,最可靠的方式是提前记录合并前分支的提交哈希,合并后直接对比:

  • 先记录合并前当前分支(比如master)的提交:
    PRE_MERGE_SHA=$(git rev-parse HEAD)
    
  • 执行快进合并(加--ff-only可确保仅执行快进合并,避免意外的非快进合并):
    git merge develop --ff-only
    
  • 对比合并前后的变更文件:
    git diff --name-only $PRE_MERGE_SHA HEAD
    

情况2:已完成合并,CI环境无reflog支持

如果合并已经完成,且CI环境无法使用HEAD@{1}(无reflog),可以利用分支的共同祖先来获取合并前的状态:

  • 执行以下命令直接输出所有变更文件:
    git diff --name-only $(git merge-base HEAD develop) HEAD
    
    原理:快进合并场景下,git merge-base HEAD develop会返回master分支创建develop时的初始提交(即合并前master的最后一次提交),对比该提交与当前HEAD,就能得到develop分支上所有提交的变更文件。

注意:如果合并后develop分支已被删除,可尝试用远程分支作为合并前的基准(前提是合并后未推送到远程):

git diff --name-only $(git rev-parse origin/master) HEAD

内容的提问来源于stack exchange,提问作者Mickael Rahmine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 06:30:53