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

执行Git revert后,如何提交本地保留的回退代码及新增变更?

解决步骤

先明确当前状态:远程主线已经有一个revert提交抵消了你之前push的代码,而本地还保留着被revert的原代码+后续新增修改,且未同步远程。以下是安全保留所有变更的操作流程:

方法一:用临时分支备份(更直观安全)

  • 创建临时分支并提交所有本地修改,确保变更不会丢失:
    git checkout -b temp-save
    git add .
    git commit -m "临时备份:原提交代码+新增修改"
    
  • 切回主线分支,拉取远程最新代码(包含那个revert提交):
    git checkout <你的主线分支名,比如main>
    git pull origin <主线分支名>
    
  • 恢复之前被revert的原提交:先找到远程那个revert提交的ID(可以用git log查看),执行反向revert来恢复原代码:
    git revert <revert提交的ID>
    
    这一步会生成一个新提交,把你之前被回退的代码重新恢复到主线。
  • 合并临时分支的新增修改到主线:
    git merge temp-save
    
    如果出现冲突,手动解决冲突后执行git add .,然后提交合并结果:
    git commit -m "合并新增修改"
    
  • 最后推送到远程:
    git push origin <主线分支名>
    

方法二:用stash暂存修改(更简洁)

  • 暂存当前所有本地修改,避免拉取时丢失:
    git stash push -m "暂存原代码+新增修改"
    
  • 拉取远程主线最新代码:
    git pull origin <主线分支名>
    
  • 恢复原提交:找到远程revert提交的ID,执行反向revert:
    git revert <revert提交的ID>
    
  • 恢复暂存的修改:
    git stash pop
    
    若有冲突,手动解决后执行git add .,然后提交新增修改:
    git commit -m "提交新增修改"
    
  • 推送到远程:
    git push origin <主线分支名>
    

注意事项

  • 执行git log时,revert提交的日志通常会带有Revert "xxx"的字样,很容易识别。
  • 解决冲突时,仔细对比代码,确保保留原提交内容和新增修改的正确部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:15:40