如何从同组织的Repo A向Repo B发起Pull Request?
解决跨仓库PR找不到目标仓库及远程切换报错问题
一、创建PR时看不到Repo A的解决办法
GitHub默认只展示你拥有权限的仓库和原fork的上游仓库,若Repo A未出现在选项中,可按以下方式处理:
- 手动指定仓库路径:在PR创建页的「head repository」下拉框中,直接输入组织名+Repo A名称(如
your-org/Repo-A),系统会自动匹配出目标仓库。 - 检查权限与组织设置:确认你拥有Repo A的写入权限,同时核实组织仓库设置中没有限制跨仓库PR的规则。
- 从Repo A直接发起PR:打开Repo A的main分支页面,点击「Compare & pull request」,在目标仓库(base repository)中选择同组织的Repo B,设置base分支为main,即可直接创建PR。
二、切换远程origin报错的排查步骤
切换远程仓库时的报错多与权限、地址错误有关,按以下流程处理:
- 查看当前远程仓库配置
执行命令确认当前远程指向:git remote -v - 修改远程仓库地址
若要将origin切换为Repo B的地址,执行:# HTTPS地址示例 git remote set-url origin https://github.com/your-org/Repo-B.git # 或SSH地址示例 git remote set-url origin git@github.com:your-org/Repo-B.git - 验证修改结果
再次执行git remote -v,确认origin已指向Repo B。 - 针对性解决报错
- 若提示
permission denied:检查SSH密钥是否已添加至GitHub账号,或HTTPS凭证是否正确。 - 若提示
fatal: not a git repository:确认当前处于本地仓库的根目录下。 - 切换后拉取/推送报错:先拉取Repo B main分支的最新代码,解决冲突后再操作:
git pull origin main
- 若提示
额外建议:若需同时管理Repo A和Repo B,无需替换origin,可新增一个远程别名:
git remote add repo-b https://github.com/your-org/Repo-B.git
后续推送至Repo B可使用git push repo-b main,origin仍保留指向Repo A,方便同步上游代码。
内容的提问来源于stack exchange,提问作者AdamFi
相关产品推荐
相关产品推荐

