Github Fork&拉:我的公关被接受了,如何继续工作?

时间:2016-05-17 12:02:07

标签: git github

最近我开始合作开源项目。

使用fork and pull方法我发送了我的第一张PR,它已被批准。

如何使用相同的分叉存储库处理下一个问题?

由于我的PR已合并,我当前的主分支在原始存储库后面。

我设法考虑了两个解决方案:

  1. 将PR分支合并到我的主分支,并基于master创建一个新分支来处理新问题。
  2. 创建一个“上游”远程并执行拉动本地主分支。
  3. 哪一个更好?还有其他选择吗?

1 个答案:

答案 0 :(得分:3)

不要在本地存储库中的master上工作。一个好的工作流程看起来像这样:

  • 在github上分叉上游存储库。

  • 在本地克隆上游存储库:

    git clone git@github.com:/someproject/somerepo.git
    
  • 将您的前叉添加为附加遥控器:

    cd somerepo
    git remote add mine git@github.com:/me/somerepo.git
    
  • 确保您的本地存储库与上游存储库保持同步。显然,如果您只是克隆它就已经是这种情况了,否则:

    git checkout master
    git pull
    

    请注意,这将从上游master分支,而不是您的分支。这就是你想要的。

  • 为您的工作创建一个新的主分支:

    git checkout -b my-spiffy-feature
    
  • 你工作,把分支推到你的叉子上:

    git push -u mine my-spiffy-feature
    
  • 向上游主人提交拉取请求。

此时,您可以开始做其他工作了。您可以在master之外创建另一个新分支:

    git checkout -b another-feature master

或者,如果有必要,您可以将其建立在以前的工作基础上:

    git checkout -b another-feature my-spiffy-feature

当您在上游接受上一个拉取请求时,请更新您当地的主分支:

    git checkout master
    git pull

然后在更新后的主分支上重新定义任何现有工作:

    git checkout another-feature
    git rebase master

通过此工作流程,master始终跟踪上游,您的工作始终在隔离的分支上完成,这样可以轻松处理多个拉取请求。