Git(Hub)新手求助:向受损上游仓库提交独立PR遇阻如何解决?
别担心,你完全没陷入困境!
你遇到的问题其实是对GitHub提交多PR的流程有点误解——根本不需要创建第二个仓库副本(R''),一个fork仓库(R')就足够提交多个完全独立的PR,每个PR对应一个单独的分支就行。咱们一步步来解决:
第一步:把你的第一个fork(R')同步到原仓库的最新状态
你之前执行git remote add upstream没效果,大概率是没在正确的仓库目录下操作。先回到你本地的R'仓库文件夹,按以下步骤来:
- 先检查当前远程仓库配置:
如果输出里没有git remote -vupstream,再执行添加命令(这次一定要确保在R'的本地仓库里运行):git remote add upstream https://github.com/GoogleCloudPlatform/cloud-builders-community.git - 切换到你的主分支(比如
main或master):git checkout main - 拉取原仓库(upstream)的最新代码到本地:
git pull upstream main - 把同步后的代码推回你的远程fork(R'):
git push origin main
第二步:为第二个独立PR创建专属分支
每个PR都应该在独立的分支上开发,这样和你之前未合并的PR完全隔离:
- 从主分支创建新分支(名字可以自定义,比如
feature/new-independent-change):git checkout -b feature/new-independent-change - 在这个分支里完成你的代码修改,然后提交:
git add . git commit -m "添加你的修改描述,比如:新增XX功能或修复XX问题" - 把分支推到你的远程fork(R'):
git push origin feature/new-independent-change
第三步:在GitHub UI提交新PR
推完分支后,打开你的R'仓库页面,GitHub会自动弹出一个「Compare & pull request」的横幅,点击它:
- 确认目标仓库是原仓库(GoogleCloudPlatform/cloud-builders-community)的主分支
- 填写PR的标题和描述,提交即可
这个新PR和你之前未审核的PR完全独立,因为它们来自不同的分支,不会互相干扰。
关于第二个仓库(R'')的小补充
其实你也可以从R''提交PR,但操作起来更麻烦:需要手动在R''的仓库页面点击「New pull request」,然后手动选择原仓库作为目标分支。但这种方式会让你的仓库列表变乱,也不利于后续同步原仓库的更新,所以非常不推荐。
新手刚接触GitHub时很容易误以为一个PR需要一个fork,记住一个fork + N个独立分支才是提交多PR的标准姿势哦!
内容的提问来源于stack exchange,提问作者DazWilkin
相关产品推荐
相关产品推荐

