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

Git变基后提交合并,如何保留feature分支的原有提交历史?

Git变基时保留原有提交历史的正确操作

正常冲突解决流程(避免提交合并)

当变基遇到冲突时,按以下步骤操作就能保留commit-A、commit-B的独立提交:

  1. 切换到feature分支:git checkout feature
  2. 启动变基:git rebase master,Git会在冲突处暂停
  3. 手动修改file-1、file-2中的冲突内容
  4. 用git add file-1 file-2标记冲突文件已解决(关键:不要执行git commit)
  5. 继续变基流程:git rebase --continue,Git会自动依次应用commit-A、commit-B,最终得到你期望的提交历史:commit-1 → commit-2 → commit-3 → commit-A → commit-B

提交被合并的原因

你遇到的问题,几乎可以肯定是在解决冲突后错误执行了git commit,而非git add。变基过程中执行git commit会生成一个新提交,后续的git rebase --continue会把剩余提交直接合并到这个新提交里,最终导致所有feature分支的提交被合并成一个。

已合并后的恢复方法

如果已经出现提交被合并的情况,可以通过reflog恢复到变基前的状态,重新操作:

  1. 执行git reflog,找到变基开始前feature分支的最后一个提交哈希(比如commit-B对应的哈希值,格式类似abc123)
  2. 恢复到该状态:git reset --hard abc123
  3. 重新执行变基流程,严格按照上面的正确步骤操作即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:16:05