要求贡献者在github上重新放置他们的拉取请求是否正确


25

我维护了一个相对流行的github仓库。

当合并请求很好合并时,我通常会要求作者在合并之前将其重新设置为单个提交(特别是在进行多个小修改时)。

这是git的好习惯吗?这是可接受/标准的GitHub礼节吗?

因此有一些好处:

  • 我在提交日志中得到了很好的干净提交历史记录
  • 我不需要自己更改提交
  • 它委托一些工作

一些可能的缺点:

  • 我不确定这是不是很好的礼节
  • 我不确定这是否是个好习惯
  • 我通常已经要求进行其他一些更改-这是又一个更改,我不想阻止贡献者。

1
您能描述通过这种方式看到的一些利弊吗?
Alex Feinman 2014年

1
一些其他的优点和缺点值得考虑。好处:当每次提交产生可构建状态或其他状态时,git-bisect和其他逆转会更容易,并且这种方法是保证这种状态的简单方法。不好:使用简单的提交消息进行的微小更改就会变成大型提交。EG“更改了这一行,以至于不能固定死角”可能会卷入“添加功能foo,大更改列表 ”中。这使得查找特定更改的原因更加困难。
Gankro 2014年

1
设定标准没有错。只是预先弄清楚期望是什么。例如:symfony.com/doc/current/contributing/code/patches.html向下滚动到第3步:提交你的补丁
CERAD

6
@Granko:“ Rebase”和“ rebase成一个提交”是两个独立的问题。
马修·沙利

2
如果要求贡献者执行此操作,是否应使用覆盖请求请求的分支git push -f
Flimm

Answers:


16

就Git而言,这是一场神圣的战争,无论您是应该简单地合并分支还是将要合并的分支基于最新版本的分支重新提交。如果您在Programmers.SE上进行快速搜索,那么会有很多关于哪个更好的对话。

至于其背后的礼节,让我们从实际的角度进行处理。在处理来自其他人的新代码时,最好总是让他们合并分支中的最新更改,或者在合并之前重新设置基础以确保干净的合并。请记住,他们编写了代码,因此,它们通常是迄今为止处理任何合并/变基冲突的最有资格的人。我个人认为它没有问题,并且一直都在其他人那里看到此请求。对我来说,如果没有冲突,那么我通常会自己做,因为这是git可以应用的两秒更新。但是,如果有冲突,那么我将始终要求代码的原始作者自己处理。

此外,对于GitHub(至少是具体而言),它们将CONTRIBUTING在任何PR尝试之前显示指向您文件的链接,从而是概述您的期望的好地方,并且许多项目确实包括它们只会合并最新的分支。


+1将实用主义带入讨论。是的,这就是重点。解决大型请求请求中的复杂冲突可能非常困难,尤其是当涉及一定数量的提交时。那就是应要求原始作者注意的地方。简单的冲突不是问题,它们从来没有,也永远不会。
JensG 2014年

1
+1用于实际提供答案,而不仅仅是评论!
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.