协作R项目中使用pr_push()推送代码时遭遇GitHub远程配置错误‘theirs’的求助
解决
pr_push() 触发的 "Internal error: Unexpected GitHub remote configuration: 'theirs'" 错误 你的问题核心在于远程仓库配置不符合pr_push()的预期——从你提供的 git remote -v 结果来看,当前origin远程指向的是原仓库(PPBDS/primer),而不是你自己的fork仓库。pr_push() 函数需要本地分支关联到你自己的fork才能创建PR,这就是报错的根源。
下面是具体的解决步骤:
1. 准备你的fork仓库地址
先登录GitHub找到你fork后的仓库,它的URL格式应该是:https://github.com/你的GitHub用户名/primer.git,把这个地址记下来。
2. 修正远程仓库配置
打开RStudio的终端(或者系统终端进入项目所在目录),根据你的需求选择以下一种方法:
方法一:重置origin为你的fork(推荐)
这是最标准的配置方式:origin指向自己的fork,upstream指向原仓库。
# 将origin远程地址替换为你的fork地址 git remote set-url origin https://github.com/你的GitHub用户名/primer.git # 添加原仓库为upstream,方便后续同步原仓库的更新 git remote add upstream https://github.com/PPBDS/primer.git
方法二:新增远程指向你的fork(保留原origin)
如果不想修改现有origin的指向,可以新增一个远程(比如命名为myfork):
git remote add myfork https://github.com/你的GitHub用户名/primer.git
3. 关联本地分支并推送
- 如果你用了方法一,直接执行以下命令关联分支并推送:
git push -u origin Python.v
完成后再运行 pr_push() 就能正常触发PR推送了。
- 如果你用了方法二,需要指定远程仓库推送:
git push -u myfork Python.v # 或者直接在pr_push中指定远程 pr_push(remote = "myfork")
4. 验证配置是否正确
执行 git remote -v 检查输出,确认以下两种情况之一:
origin指向你的fork仓库,同时存在upstream指向原仓库PPBDS/primer;myfork指向你的fork仓库,origin保持指向原仓库PPBDS/primer。
这样配置完成后,pr_push() 就能正确识别远程仓库,顺利完成PR的推送操作了。
内容的提问来源于stack exchange,提问作者Ahmet Atilla Colak
相关产品推荐
相关产品推荐

