如何将已被回滚的Git代码变更重新合并回master分支?
恢复被回滚的代码并重新合并到Master分支
1. 定位关键提交
- 找到你当初将feature分支合并到master的合并提交,记录它的哈希值为
ORIGINAL_MERGE。可通过以下命令筛选合并提交:
从输出中根据提交信息或时间定位目标合并记录。git log --oneline --merges master - 找到同事执行回滚生成的提交,哈希值记为
REVERT_COMMIT,该提交的信息通常包含Revert "合并xxx"字样。
2. 撤销回滚,恢复你的代码
直接合并原feature分支会被Git判定为已合并(无实际变更),因此需要撤销回滚操作:
git checkout master git pull origin master # 拉取master最新变更 git revert REVERT_COMMIT
此命令会生成新提交,将你被回滚的代码重新恢复。
3. 处理冲突(若出现)
执行git revert时若触发冲突,按常规流程处理:
- 打开冲突文件,手动修改冲突内容
- 用
git add <冲突文件>标记冲突已解决 - 执行
git revert --continue完成撤销操作
4. 推送变更到远程
完成恢复后,推送本地提交到远程master:
git push origin master
备选方案:提取单个提交重新合并
如果你的feature分支包含多个独立提交,可直接提取这些提交应用到最新master:
- 记录feature分支的起始与结束提交哈希
FEATURE_START、FEATURE_END - 切换到最新master并拉取更新:
git checkout master git pull origin master - 批量提取并应用提交:
处理冲突后推送到远程即可。git cherry-pick FEATURE_START..FEATURE_END
安全提示
操作前建议创建临时分支备份当前master,避免误操作:
git checkout master git checkout -b master_backup_$(date +%Y%m%d)
内容的提问来源于stack exchange,提问作者DarkLeafyGreen
相关产品推荐
相关产品推荐

