Git - 在不分叉的情况下创建拉取请求

时间:2018-01-05 08:58:53

标签: git github

现在已经和git合作了一段时间。 关于git pull请求有很多教程和解释。 它是什么动机等等。

我遇到两种情况:

1。分叉git repo

我查看了一些公共git存储库并决定我想贡献所以我:

  1. 通过分叉创建重复的存储库。例如分支机构。

  2. 进行更改并提交。

  3. 创建拉取请求(例如,使用GUI)
  4. 选择原始git存储库(主分支)与我的分叉存储库之间的比较。
  5. 提交拉取请求。
  6. 2。分支git repo

    让我说我和我的团队成员正在研究这个git repo。 我正在开发一个名为“my-feature”的功能。所以我做了以下几点:

    1. 创建一个名为“my-feature”的新分支。
    2. 进行更改。并提交。
    3. 在选择master时创建拉取请求,例如 base 分支和'my-feature'分支为比较
    4. 提交拉取请求。
    5. 就像我说的那样,我理解上述示例中拉请求的工作方式。

      我的问题:镜像

      然而,我正在进行一项任务,其中明确要求我不要使用仓库而是反映它。

      我按照以下链接提供的github帮助中列出的步骤进行操作:

      https://help.github.com/articles/duplicating-a-repository/

      基本上我做的是:

      创建公共存储库的裸克隆:

       git clone --bare https://github.com/exampleuser/old-repository.git
      

      镜像推送到新存储库(在我的github帐户上)

      cd old-repository.git
      git push --mirror https://github.com/exampleuser/new-repository.git
      

      我做了我的更改并将它们提交给我自己的镜像副本。 现在,如何在不升级的情况下为存储库的所有者创建拉取请求?

1 个答案:

答案 0 :(得分:1)

正如您已经指出的那样,只有两种方法可以让您创建拉取请求:从fork或您拥有对原始存储库的贡献者访问权限。如果你没有,那么你在这里运气不好。

你唯一能做的就是创建一个问题并要求拉(这是一种非常手动的拉取请求)。

GitHub的命令行界面 hub 存在一个相关问题,要求找到submit a pull request without a fork的方法。那里的评论讨论了这是如何工作的,各位成员指出没有分支就不可能:

  

<强> j1z0   如果您不推送权限,则必须使用fork,因为GitHub中的权限是每个repo而不是每个分支。

           

<强> mislav   如果您具有对原始存储库的推送访问权限,则只能在没有分支的情况下打开请求。然后,您只需按下该仓库中的新分支并使用hub pull-request

     

在其他情况下,您必须使用hub fork创建一个分叉并推送到新的远程git push -u skywinder HEAD并打开拉取请求hub pull-request