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

使用git revert回退提交后如何重新推送分支代码至development分支

问题根源

你此前在development分支执行的git revert操作,只是生成了一个反向提交抹掉了分支A的代码改动,但Git的提交历史仍然记录了「分支A已经合并到development」的状态。因此你再次合并未重置过的分支A时,Git默认只会合并你回退操作之后分支A新增的提交,不会还原之前被revert掉的代码。


解决方案

方案一:回退之前的revert提交(推荐,保留所有历史记录)

适合需要保留完整提交 trace、多人协作共用development分支的场景,操作步骤如下:

  • 先切换到本地development分支,拉取最新远程代码避免冲突
git checkout development
git pull origin development
  • 查找你之前回退分支A合并的那次revert提交的哈希值,可通过log命令快速筛选
git log --oneline
  • 执行反向操作,撤销那次回退提交,先把分支A之前的代码改动还原到development分支
git revert <你之前revert提交对应的哈希值>
  • 此时再合并你修改后的分支A,就能正常合并所有新旧改动
git merge 分支A
# 解决可能出现的冲突后提交改动
git push origin development

方案二:变基分支A后合并(适合分支A仅个人使用的场景)

这个方案会改写分支A的提交历史,适合没有其他开发者共用分支A的场景,不会额外多出来一次revert记录:

  • 切换到你的本地分支A,拉取最新代码
git checkout 分支A
git pull origin 分支A
  • 以当前最新的development分支为基准执行变基操作,Git会把分支A的所有提交在development分支顶部重新生成一遍,生成全新的提交哈希,规避Git判定「已合并」的问题
git rebase development
# 变基过程中如果出现冲突,解决冲突后执行`git rebase --continue`直到操作完成
  • 变基完成后切换回development分支,正常合并分支A即可
git checkout development
git merge 分支A
git push origin development

注意事项

  • 选择变基方案前必须确认没有其他开发者在共同使用分支A,否则会导致其他人的本地分支和远程分支不一致,产生大量冗余合并冲突
  • 两种方案操作前都建议先备份当前本地分支的代码,避免误操作丢失改动

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:36:07