You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Git镜像仓库后如何创建Pull Request(无需Fork)

如何从镜像仓库向原仓库提交Pull Request

嘿,我完全懂你现在的处境——没法用常规的Fork流程,而是通过镜像仓库完成了修改,现在想给原仓库提Pull Request对吧?其实GitHub本身就支持在两个独立仓库之间直接创建PR,不需要依赖Fork的关联关系,下面给你两种实用的解决方法:

方法1:手动构造PR对比链接(最简便)

这是最快的操作方式,不需要额外的命令行步骤:

  • 先打开原仓库的Pull Request页面,默认地址是https://github.com/[原仓库所有者]/[原仓库名]/pulls
  • 修改URL为分支对比格式:https://github.com/[原仓库所有者]/[原仓库名]/compare/[原仓库基准分支]...[你的GitHub用户名]:[你的镜像仓库名]:[你的修改分支名]
    举个实际例子:如果原仓库是exampleuser/old-repository,基准分支用master,你的镜像仓库是yourname/new-repository,修改分支叫my-updates,那最终链接就是:
    https://github.com/exampleuser/old-repository/compare/master...yourname:new-repository:my-updates
    
  • 访问这个链接后,GitHub会自动加载分支对比界面,确认修改内容没问题后,点击「Create Pull Request」,填写PR标题和描述就能提交了。

方法2:通过本地Git配置关联原仓库(适合频繁贡献)

如果你之后还要多次给原仓库提交修改,可以先在本地把原仓库设为上游远程,方便后续同步:

  1. 进入你本地的镜像仓库目录:
    cd old-repository.git
    
  2. 添加原仓库为远程上游(习惯命名为upstream):
    git remote add upstream https://github.com/exampleuser/old-repository.git
    
  3. 每次准备提交PR前,先同步原仓库的最新代码到你的镜像仓库:
    git fetch upstream
    git checkout [你的修改分支]
    git merge upstream/[原仓库基准分支]
    # 解决可能出现的冲突后,提交并推送到你的镜像仓库
    git push origin [你的修改分支]
    
  4. 之后就可以用方法1的链接构造方式,或者在GitHub上手动选择你的镜像仓库分支来创建PR。

注意事项

  • 如果原仓库是私有仓库,你需要确保原仓库的维护者有权限访问你的镜像仓库(比如把镜像仓库设为私有并邀请他们作为协作者,或者在项目允许的情况下设为公开)。
  • 这种跨仓库PR没有Fork仓库的自动上游同步功能,所以每次原仓库更新后,你需要手动同步到你的镜像仓库,再更新PR对应的分支内容。

内容的提问来源于stack exchange,提问作者mivrider

火山引擎 最新活动