误更新待处理PR后如何从工作分支创建全新Pull Request
操作方案
现有Pull Request和远程源分支是强绑定关系,只要向绑定的feature2远程分支推送提交,就会自动更新对应PR的内容。要提交不关联旧PR的全新PR,同时恢复旧PR的原有内容,按以下步骤操作即可:
- 提前确认两个关键提交哈希,避免代码丢失
- 打开原有待处理PR的提交列表页面,复制PR内容混乱前的最后一个提交哈希,记为
<old_pr_commit>,这个值是旧PR本该对应的正确版本节点 - 在本地
feature2分支执行git log,复制你当前需要提交到新PR的最新已提交节点的哈希,记为<new_pr_commit> - 如果本地还有未提交的工作区改动,先执行
git stash暂存,避免操作过程中代码丢失
- 打开原有待处理PR的提交列表页面,复制PR内容混乱前的最后一个提交哈希,记为
- 创建独立分支承载新PR内容
基于要提交的新代码节点创建全新分支,示例命名为feature2-new-content:
将新分支推送到远程仓库:git checkout -b feature2-new-content <new_pr_commit>
推送完成后在代码平台新建PR,选择源分支为git push origin feature2-new-contentfeature2-new-content、目标分支为develop,这个PR是完全独立的,不会关联原有待处理PR。 - 恢复原有
feature2分支,让旧PR回归正确状态
切回本地feature2分支:
将本地git checkout feature2feature2分支强制回滚到旧PR对应的正确提交节点:
确认新分支已经推送成功、所有需要保留的新代码都已同步到新分支后,执行强制推送覆盖远程git reset --hard <old_pr_commit>feature2分支的错误内容:
操作完成后刷新原有PR页面,内容就会恢复到混乱前的状态,不会再混入后续开发的新脚本代码。git push --force origin feature2
注意:如果有其他团队成员也在使用
feature2分支,执行强制推送前务必提前同步,避免覆盖其他人的提交。所有操作完成后,如果之前暂存了未提交的改动,切到对应分支执行git stash pop即可恢复。
内容的提问来源于stack exchange,提问作者kishore
相关产品推荐
相关产品推荐

