Git回滚后重新提交:合并backup至master提示已更新的解决方案
问题解决方案
核心原因
你合并backup分支时提示“Already up to date”,是因为backup分支的所有提交已经存在于master的历史中——当初你从master分出backup时,master的修改提交就已经被包含在backup里,后续master只是通过一个新提交撤销了这些修改,但历史记录并没有删除。Git判断master已经涵盖backup的所有提交,所以认为无需合并。
最安全可靠的合并方法:Revert回滚提交
这种方式完整保留所有操作历史,不会重写分支记录,对协作开发友好,是首选方案:
- 切换到master分支并拉取最新代码:
git checkout master git pull origin master - 找到你之前回滚操作生成的提交(提交信息为
Rolled back to version 1.0.1)的SHA值,执行revert命令:git revert <回滚提交的SHA值> - Git会自动生成一个新提交,内容是恢复之前被撤销的所有修改,直接保存默认提交信息即可(也可按需修改)。
- 推送到远程master:
git push origin master
备选方案:从backup生成补丁应用
如果需要调整backup分支的修改后再上线,可以用补丁方式:
- 切换到backup分支:
git checkout backup - 生成backup相对于标签1.0.1的差异补丁:
git diff 1.0.1 > ~/backup-changes.patch - 切回master分支:
git checkout master - 应用补丁:
git apply ~/backup-changes.patch - 解决可能出现的冲突后,提交并推送:
git add . git commit -m "Restore changes from backup branch" git push origin master
内容的提问来源于stack exchange,提问作者JsbDev
相关产品推荐
相关产品推荐

