GitHub强制推送误删提交后如何重新打开原有PR
重新打开已关闭PR并提交新变更的操作步骤
操作前提:你拥有该仓库的推送权限,且确认要关联的已关闭PR未被仓库管理员设置为禁止重新打开
通用操作流程(支持恢复原有提交或使用新提交)
- 第一步:确认要推送的分支名
前往已关闭的PR页面顶部查看分支关联信息,格式为想要合并 <源分支名> into <目标分支名>,记录下<源分支名>,后续推送的分支必须和该名称完全一致才能关联到原有PR - 第二步:准备本地分支
- 如果本地还保留着原PR对应的分支,直接切换:
git checkout <源分支名> - 如果本地分支已被删除,基于目标分支新建同名分支:
git checkout -b <源分支名> origin/<目标分支名,通常为main或master>
- 如果本地还保留着原PR对应的分支,直接切换:
- 第三步:准备提交内容
- 若要恢复原有被删除的3次提交:执行
git reflog查找被删除提交对应的哈希值,按顺序执行git cherry-pick <commit哈希1> <commit哈希2> <commit哈希3>恢复提交;如果确认本地无未保存变更,也可以直接执行git reset --hard <最后一次被删提交的哈希>快速恢复 - 若要使用全新提交:直接在当前分支完成代码修改后,执行
git add .和git commit -m "你的提交描述"生成新提交即可
- 若要恢复原有被删除的3次提交:执行
- 第四步:推送分支到远程仓库
执行强制推送命令覆盖远程同名分支(如果远程分支已被删除,该命令会自动重建):git push origin <源分支名> --force - 第五步:重新打开PR
回到已关闭的PR页面,系统会自动检测到对应源分支已恢复且存在有效提交,点击页面上的Reopen按钮即可重新激活该PR,你推送的提交会自动同步到PR的提交列表中
注意:如果仓库开启了分支保护规则,你需要先获取该源分支的强制推送权限,否则第四步会推送失败
内容的提问来源于stack exchange,提问作者Digital404
相关产品推荐
相关产品推荐

