【问题标题】:Do I need to fork a repository multiple times to make multiple pull requests?我是否需要多次 fork 存储库才能发出多个拉取请求?
【发布时间】:2015-11-22 05:14:54
【问题描述】:

我想和另一个程序员一起在一个项目上使用 git on bitbucket。 由于我不是项目的所有者,所以我做了以下步骤:

  1. 我分叉了这个项目(我现在在我的 repo 上)
  2. 我进行了更改并提交了它们
  3. 我推送到我的仓库
  4. 我提出了拉取请求

项目的所有者接受了我的拉取请求,所有更改现在都在他的仓库中。

现在,我想对项目所有者的修改版本提出新的拉取请求。我应该为同一个 repo 创建一个新的分支吗?


部分代码问题的表述:

  1. 我分叉了这个项目(我现在在我的 repo 上有一个副本)

    • owner/proj:所有者的repo
    • me/proj:我的 owner/proj 的分叉
  2. 我进行了更改并提交了它们

    git 添加。

    git commit -m "fork-commit"

  3. 我推送到我的仓库

    git push -u origin # 推送到我的仓库:me/proj

  4. 我提出了拉取请求并被所有者接受(me/projowner/proj 的主分支相同)

  5. 在所有者对他的所有者/项目的主分支进行了一些额外更改之后,repos情况如下:

    • me/proj 的 master 分支与我本地 repo 的 master 分支完全相同。因此,命令 git fetchgit pull 将什么都不做(这是正常的)
    • me/proj 的 master 分支和 owner/proj 的 master 分支不同。

为了避免多次分叉,我应该在所有者 repo 上创建一个 git pull 吗?还是我们(我和所有者)应该共享同一个仓库?

谢谢,

【问题讨论】:

  • 没有。您应该在您的工作副本中拉取官方 repo 的更改,然后将它们推送到您的 bitbucket repo(保持最新),然后像第一个一样实施您的更改并提交 PR。跨度>
  • 我更新了我的问题以使其更清晰。请@JBNizet,让我知道你的想法?谢谢...
  • 您没有对存储库本身的写入权限吗?正常的工作流程是克隆存储库,在另一个分支中工作,推送该分支,创建拉取请求,要求将分支中的更改合并到主/生产分支中。

标签: git github bitbucket pull-request git-fork


【解决方案1】:

这取决于存储库所有者希望如何合并您的代码。

作为一种选择,在合并拉取请求的代码后,您可以创建合并代码的新分支,以获取您和您的所有者的所有更改并开始处理该存储库。完成工作后,您可以将代码推送到您的分支中,然后创建拉取请求。

如果您的所有者在创建拉取请求之前对基础仓库进行了任何更改,并且您需要在您的分支中使用该代码,您可以使用以下命令将基础分支合并到您的功能分支中 -

git checkout "your feature branch"

git pull

git merge "your owner's branch"

(提供您的提交评论)

git push 

【讨论】:

  • 我更新了我的问题以使其更清晰。感谢您更新您的答案...
  • 正如你所说, git pull 不会做任何事情。它会显示一切都是最新的。在这种情况下,你只需要运行我在 git pull 之后提到的命令。
  • git merge "your owner's branch" 并在提供您的评论后,您只需要执行 git push。您将在您的分支和本地计算机中拥有您所有者的分支代码。
【解决方案2】:

为了避免多次分叉,我应该对所有者回购进行 git pull 吗?还是我们(我和所有者)应该共享同一个仓库?

不需要多个分叉,只需从所有者 repo 中进行 git pull。

始终对不受信任的贡献者使用拉取请求。如果所有者同意,您应该尝试不同的工作流程并找到一个双方都满意的工作流程。

【讨论】:

    猜你喜欢
    • 2012-02-17
    • 2020-11-21
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    相关资源
    最近更新 更多