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

Git仓库alpha中如何回退提交B且保留后续提交修改?

如何在保留后续提交的前提下回退Git提交B?

方法1:正确使用git revert(推荐,适合已推送到远程的分支)

你之前觉得git revert B会丢失后续提交的更改,其实是误解了它的作用——这个命令不会直接重置文件状态,而是生成一个新提交来抵消B的所有修改。如果后续的c/d/e/f提交改动了B中碰过的文件,执行时会触发冲突,只要手动解决冲突就能保留后续更改:

  • 运行命令:git revert B
  • 打开冲突标记的文件,手动保留c/d/e/f的修改内容,移除B带来的改动
  • 解决完所有冲突后,执行git add .
  • 执行git commit(Git会自动生成撤销B的提交信息,可按需修改)
  • 推送到远程仓库:git push

方法2:交互式变基(仅适用于私有远程分支)

如果这个远程分支是你个人专用,且没有其他团队成员基于后续提交开发,可以用变基直接删除提交B:

  • 运行命令:git rebase -i a(a是B之前的那个提交ID)
  • 在弹出的编辑界面里,找到提交B对应的行,把开头的pick改成drop
  • 保存退出后,Git会重新生成不包含B的提交历史
  • 强制推送到远程:git push -f

注意:变基会改写已公开的提交历史,容易导致其他协作成员的本地仓库出现冲突,非必要不要用这个方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 06:13:14