我是否需要多次分叉存储库以发出多个拉取请求?

Do I need to fork a repository multiple times to make multiple pull requests?

我想与另一个程序员一起使用 bitbucket 上的 git 进行一个项目。 由于我不是该项目的所有者,因此我执行了以下步骤:

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

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

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


部分代码问题的表述:

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

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

    git 添加 .

    git commit -m "fork-commit"

  3. 我推送到我的仓库

    git push -u origin # 推送已完成到我的 repo:me/proj

  4. 我提出了拉取请求,它被所有者接受了(me/proj[= 的主分支102=]相同)

  5. 之后所有者对owner/proj的master分支做了一些额外的修改,repos情况如下:

    • me/proj的master分支和我本地repo的master分支完全一样。因此,命令 git fetchgit pull 将不执行任何操作(这是正常的)
    • me/proj的master分支和owner/proj的master分支不一样。

为了避免多次分叉,我应该在所有者回购协议上进行 git 拉取 吗?或者我们(我和所有者)应该共享相同的 repo 吗?

谢谢,

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

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

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

git checkout "your feature branch"

git pull

git merge "your owner's branch"

(提供您的提交评论)

git push 

SO TO AVOID MULTIPLE FORK, should I make a git pull on the owner repo? Or should we (me and the owner) share the same repo?

无需多次分叉,只需 git 从所有者回购中拉取。

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