如何检出他人Fork仓库中提交Draft PR的远程分支?
错误原因
- 你使用的
[对方用户名]:[对方分支名]是GitHub PR页展示分支来源的标识格式,并非Git可识别的远程分支引用格式 - 对方提交PR的分支存储在他自己的Fork仓库中,并没有同步到你配置的upstream(组织官方仓库)里,因此你的本地Git索引中不存在
upstream/[对方用户名]:[对方分支名]这个引用,自然无法基于它创建本地分支
正确操作方案
方案1:直接从upstream拉取对应PR的分支(最便捷)
你只需要知道该Draft PR的编号(即PR页面地址末尾的数字,比如https://github.com/[OrgName]/[repoName]/pull/123中的123就是PR编号),执行以下命令即可:
- 拉取PR对应分支到本地并创建自定义命名的本地分支
git fetch upstream pull/[PR编号]/head:[自定义本地分支名]
举个实际使用示例:如果PR编号是456,你想给本地分支命名为dev-fix-login,命令就是:
git fetch upstream pull/456/head:dev-fix-login
- 切换到该本地分支即可开始调整代码
git checkout [自定义本地分支名]
方案2:添加对方Fork仓库为远程源,直接拉取他的分支
如果你需要直接向对方的分支推送修改,可以使用这个方案:
- 添加对方的Fork仓库为本地远程源
git remote add [对方用户名] https://github.com/[对方用户名]/[repoName].git
- 拉取对方仓库的所有分支信息到本地
git fetch [对方用户名]
- 基于对方的分支创建本地分支并切换
git checkout -b [自定义本地分支名] [对方用户名]/[对方分支名]
修改完成后如果需要提交回对方的分支,直接执行git push [对方用户名] [本地分支名]:[对方分支名]即可,前提是对方已经给你开通了他的仓库分支的推送权限。
内容的提问来源于stack exchange,提问作者DevReacc
相关产品推荐
相关产品推荐

