2011-02-28 85 views
4

我在GitHub上派生了一个项目,推送了一些更改,并打开了一个pull请求。维护者签署过和应用新的变化犯(而不是合并我犯)等提交图是这样的:当拉取请求被摘下时,我该怎么办?

* 03a0687 (origin/master) frotz: Corrected MAN_PREFIX 
| * 11d3e98 (HEAD, master, jleedev/master) frotz: Corrected MAN_PREFIX 
|/ 
* 9c3dd1a yajl: use direct patch from Github. 

很显然,我必须要么变基或强制更新我的地方科。然后我必须强制推送到GitHub的fork上吗?我主要是问,因为强制更新不应该是自动的。当维护人员选择您的更改时,这是标准的事情吗?

+0

另外:我刚刚在[StGIT教程](http://wiki.procode.org/cgi-bin/wiki.cgi/StGIT_Tutorial)中阅读了这个内容:“作为一个惯例,你应该避免在'master '一个远程项目的分支,并且仅将它用作参考,因为它反映了别人的工作。“有道理。 – 2011-03-17 23:59:32

回答

8

最简单的事情就是总是在主题分支上工作。这样,你的叉子主分支总是看起来像上游,所以一旦上游包括你的改变,你总是做同样的事情,只是删除你的主题分支。

如果上游合并您的更改,则主控和主题分支都包含相同的提交,并且您可以安全地删除主题分支。如果上游樱桃挑选您的提交,然后验证更改使其上游,您可以删除主题分支。

这样做的另一个主要好处是您可以轻松地将您的主题分支与主人分开。有时,如果补丁无法在没有手动解决冲突的情况下应用到上游,他们会要求您重新设置或合并,并自己执行冲突解决方案,因为它的代码和关于它的知识更多。我也怀疑他们选择了你的提交,因为他们在你创建了fork之后已经提交了,并且不想为少量提交引入合并提交。通过樱桃采摘,他们保持了他们的历史更线性和更清洁。如果你经常重组,那么它可能只是一个快速前进的合并,他们不需要挑选。

至于你现在要做什么的问题,强制更新你的本地分支,然后强制推回你的分叉是你唯一的选择。

+0

好吧,这个项目的策略似乎总是挑选提交,也许是因为有多个维护人员,并且还需要添加Signed-off-by行。但是,无论哪种情况,主题分支功能都有意义。 – 2011-02-28 23:23:18

相关问题