【问题标题】:Pull request without forking?无需分叉即可拉取请求?
【发布时间】:2013-01-27 02:41:21
【问题描述】:

以下是主题“How do I contribute to other's code in GitHub?”的代码贡献步骤

  1. 分叉项目
  2. 对存储库进行一个或多个注释良好且干净的提交。如果您要修改多个部分或功能,您可以在此处创建一个新分支。
  3. 在 github 的 Web 界面中执行拉取请求。

是否可以在不分叉 repo 的情况下发出拉取请求?

很遗憾看到我的帐户中有 20 多个 repo 是为一些 pull request 而分叉的。他们当时没有活动,零星/追随者。看来我只是在抄袭某人的代码以备不时之需。

【问题讨论】:

  • 你为什么要这样做?
  • 好问题。让这 20 个存储库与原始存储库保持同步(或删除它们)也不清楚。
  • 您实际上并没有复制任何代码。如果原始仓库发生某事,则您的“分叉”的备份值为零。

标签: git github repository branch


【解决方案1】:

如果您无权在该存储库上创建分支,则没有分叉就无法创建拉取请求

【讨论】:

  • 如果您可以访问该存储库上的分支,您能否解释一下如何创建拉取请求?
  • GitHub 有一个很好的指南:help.github.com/articles/creating-a-pull-request
  • 只是提醒大家可能不太清楚的事情。您需要为您贡献的每个存储库创建一个 fork...但是在您的 fork 中创建分支允许您一次为上游 repo 工作一个以上的 PR。你不需要来自同一个 repo 的 20 个分叉来贡献 20 个 PR。
  • "...如果您无权创建分支..." 如何检查我是否可以在 repo 上创建分支?
  • @RyanBigg 如果您有权创建分支,您将如何创建拉取请求??
【解决方案2】:

一旦您的拉取请求被接受,您可以safely delete the repo

之后,只需直接从原始上游 repo 克隆即可。

如果您有其他拉取请求,那么您应该在它们各自的分支中制作它们,这意味着您可以安全地删除您为管理已接受的拉取请求而制作的分支(如“My pull request has been merged, what to do next?”)

【讨论】:

【解决方案3】:

根据定义,拉取请求涉及分叉,除非您具有对目标存储库的提交访问权限。不过,您可以做几件事:

  1. 如果您确实拥有提交访问权限,请创建一个分支并对新分支发出拉取请求。
  2. 在问题正文中发布您的补丁。这不是真正的 GitHub 方式,但它确实有效。
  3. 分叉存储库,创建拉取请求,然后在合并或拒绝拉取请求后删除分叉。

如果您只是想避免保留您不积极使用的存储库,我个人建议选项 #3。它遵循公认的 GitHub 工作流程,不会弄乱您的仪表板。

【讨论】:

  • 可能最好放在这里: 4. 维护第二个 Github 帐户只是为了处理这些请求后忘记的场景。该帐户中是否有 20 个非活动存储库无关紧要,因为它不是主帐户。
  • “如果您确实有提交访问权限,请创建一个分支并对新分支提出拉取请求。”好,很好。如何?我的天,这就像拔牙试图得到这个问题的答案。
【解决方案4】:

github支持Shared Repository Model

共享存储库模型在小型团队和组织在私人项目上进行协作时更为普遍。每个人都被授予对单个共享存储库的推送访问权限,并且主题分支用于隔离更改。

Pull 请求在 Fork & Pull 模型中特别有用,因为它们提供了一种通知项目维护人员有关 fork 更改的方法。但是,它们在共享存储库模型中也很有用,用于在合并到主线分支之前启动代码审查和关于一组更改的一般讨论。

【讨论】:

  • 请注意,这并没有解释如何在此模型中创建拉取请求。
【解决方案5】:

你仍然需要那条线: hub fork;git push -u $GIT_USER HEAD;hub pull-request

【讨论】:

    【解决方案6】:

    这令人困惑。您可以创建拉取请求,但您可以分叉某个项目,然后上传您自己的项目并在您的分叉中进行更改。选择选项以比较分支。这是方法之一。您应该分叉某人项目并使用最新的 git gui 克隆它(输入 url 和文件夹名称,安装路径将存储您的分叉,默认设置应该是最佳粘贴)。或者使用 soulseek(类似于服务器)、torrents 或 chomikuj(尽管您需要使用 dziellacz 将开源文件拆分为 1MB 以进行合并)。

    【讨论】:

      【解决方案7】:

      作为一种解决方法,您可以仅为 fork repos 创建组织。

      【讨论】:

        猜你喜欢
        • 2016-12-03
        • 2019-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多