如何在合并前直接修改他人提交的GitHub PR?
解决方法
要直接修改来自fork的PR并让变更显示在原PR中,核心是操作对方的fork仓库分支,步骤如下:
添加对方fork仓库为本地远程源
打开PR页面,找到提交者的fork仓库地址(在PR的"Compare changes"区域能看到源仓库和分支),执行命令添加远程:git remote add pr-contributor https://github.com/[对方用户名]/[仓库名].git替换
pr-contributor为你好记的别名,后面替换成实际的仓库URL。拉取对方的PR源分支
先拉取对方仓库的所有分支:git fetch pr-contributor然后切换到对方用于提交PR的分支(比如对方用的是
bugfix/xxx分支),可以直接创建本地分支跟踪它:git checkout -b temp-fix-branch pr-contributor/bugfix/xxx修改并推回对方分支
在这个本地分支上完成剩余1%的修改,提交变更:git add . git commit -m "Fix remaining issues"推回对方的fork分支:
git push pr-contributor temp-fix-branch:bugfix/xxx(如果本地分支已经跟踪了对方分支,直接
git push pr-contributor即可)验证PR更新
回到GitHub的PR页面,刷新后就能看到你的变更已经自动出现在PR的提交记录中,无需对方操作。
为什么之前的方法无效?
你执行git fetch origin pull/11失败,是因为这个命令仅适用于自己仓库内发起的PR,而当前PR来自外部fork仓库,你的origin仓库中不存在对应的pull/11远程引用,必须拉取对方的fork仓库才能获取到PR的分支内容。
特殊情况处理
如果对方已经删除了提交PR的源分支,此时无法推回变更,你可以:
- 联系对方重新创建分支并重新提交PR;
- 将PR内容合并到自己的临时分支,修改后再通过新PR合并到主分支(但这不符合你不想合并到新分支的需求,优先选第一种)。
内容的提问来源于stack exchange,提问作者xpt
相关产品推荐
相关产品推荐

