如何在自有仓库编辑他人提交的Pull Request并保持其活跃?
当然可以实现!
不过有个关键前提:PR的提交者需要在创建PR时勾选「允许维护者修改」的选项。如果当前PR没开启这个权限,你可以让提交者去PR页面的「Settings」板块里勾选「Allow edits from maintainers」——没有这个权限的话,你没法直接往对方的分支推送修改。
满足前提后,下面两种方法都能让你在PR分支里直接修改并提交,完全不会影响你的master分支:
方法一:用GitHub CLI(gh)快速操作
如果你习惯用命令行工具,GitHub CLI是最省心的方式:
- 先确保你已经安装并登录了GitHub CLI:
gh auth login - 直接拉取指定PR到本地专属分支:
这条命令会自动创建一个本地分支,并且关联PR对应的远程分支(也就是提交者fork仓库里的分支)。gh pr checkout 44 - 现在你可以放心地审阅、修改代码了,改完后提交你的修改:
git add . git commit -m "修复X功能的逻辑漏洞,补充Y模块的注释说明" - 直接推送到远程,更新PR内容:
推送完成后,PR页面会自动刷新显示你的新提交,提交者也会收到通知——所有修改都留在这个PR分支里,完全碰不到你的git pushmaster分支。
方法二:用普通Git命令手动操作
如果你不想用GitHub CLI,也可以手动配置远程分支:
- 先确认你的本地仓库已经关联了自己的远程仓库(origin):
git remote -v - 添加提交者的fork仓库作为新的远程源(假设提交者的GitHub用户名是
contributor):git remote add contributor https://github.com/contributor/myrepo.git - 拉取PR对应的分支(你可以从PR页面看到对方的分支名,比如叫
feature-improve):git fetch contributor feature-improve git checkout -b pr-44 contributor/feature-improve - 进行修改并提交:
git add . git commit -m "调整Z函数的参数处理,适配更多场景" - 推送到提交者的分支,更新PR:
git push contributor pr-44:feature-improve
额外说明
- 所有操作都在独立的PR分支上进行,你的
master分支全程不会被改动,直到你后续手动合并这个PR。 - 如果对方暂时没法开启维护者权限,你也可以把自己的修改提交成一个新PR到对方的fork仓库,让对方合并到他的PR分支后再更新原PR——不过这种方式比较繁琐,优先建议让对方开启维护者修改权限。
内容的提问来源于stack exchange,提问作者user1361529
相关产品推荐
相关产品推荐

