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

如何对比feat分支的纯变更并排除来自develop分支的合并提交?

提取feat分支的纯变更(排除develop合并内容)

1. 先找出你的所有变更提交

用这条命令列出feat分支上完全属于你、排除合并develop操作的提交:

git log --oneline --no-merges --cherry-pick --right-only a483b4b38...feat
  • --no-merges:跳过所有合并提交(包括你把develop合并到feat的那些)
  • --cherry-pick --right-only:只保留feat分支独有的提交,自动剔除和develop重复的内容
  • a483b4b38...feat:以你指定的起始提交为基准,对比feat和develop的分支差异

2. 汇总所有纯变更的Diff

如果要直接生成这些提交的完整变更内容,用下面的命令:

# 先拿到所有目标提交的哈希
COMMITS=$(git log --no-merges --cherry-pick --right-only a483b4b38...feat --pretty=format:"%H")
# 生成这些提交相对于起始节点的汇总diff
git diff a483b4b38..$COMMITS

嫌麻烦的话,直接用一行命令搞定:

git diff a483b4b38..$(git log --no-merges --cherry-pick --right-only a483b4b38...feat --pretty=format:"%H" | tr '\n' ' ')

3. 变基清理分支(可选)

如果后续还要继续维护这个feat分支,可以先把它变基到最新的develop上,这样你的所有提交会被重新堆叠在develop最新提交之上,此时直接对比起始节点和变基后的feat分支,就能得到干净的纯变更:

git checkout feat
git rebase develop
git diff a483b4b38 feat

⚠️ 注意:变基会修改分支历史,如果已经把feat分支推送到远程仓库,需要用git push --force更新,提前确认团队是否允许这么做。

内容的提问来源于stack exchange,提问作者Hao Wu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 01:23:19