误将Pull Request合并至master分支,如何迁移至release/1.1并移除更改?
误将PR合并到master分支后的处理方案
完全可以把更改迁移到release/1.1分支并移除master分支上的错误更改,具体步骤如下:
一、将更改迁移到release/1.1分支
- 切换到目标分支并拉取最新代码:
git checkout release/1.1 git pull origin release/1.1 - 找到误合并到master的提交哈希值:
执行git log master查看提交历史,找到对应PR的合并提交哈希(通常是一串7位或更长的字符)。 - 将该提交复制到release/1.1分支:
git cherry-pick <你的提交哈希值> - 处理冲突(如果有):
若出现代码冲突,手动解决冲突后执行:
若要放弃本次cherry-pick,执行:git cherry-pick --continuegit cherry-pick --abort - 推送到远程release/1.1分支:
git push origin release/1.1
二、移除master分支上的错误更改
根据master分支的状态选择合适的方式:
方式1:master分支仅包含你的错误提交(无他人后续提交)
这种情况可以直接回滚到错误提交前的状态:
git checkout master # 回滚到上一个提交(HEAD~1代表最近1个提交,若误合并多个提交可调整数字或用具体哈希) git reset --hard HEAD~1 # 强制推送到远程master git push origin master --force
注意:此操作会彻底抹掉错误提交,仅当没有其他开发者基于该错误提交做过更改时使用,否则会导致他人工作丢失。
方式2:master已有他人后续提交
用revert生成抵消提交,不会影响他人工作:
git checkout master # 生成抵消错误提交的新提交 git revert <你的错误提交哈希值> # 推送新的抵消提交到远程 git push origin master
这种方式会保留错误提交的历史,但新增一个提交来撤销其更改,更适合多人协作的场景。
内容的提问来源于stack exchange,提问作者Madhu
相关产品推荐
相关产品推荐

