我需要使用第三方代码的可用公开GitHub上。 我看代码的GitHub的网络图,我可以看到,其他叉有一些提交未合并到原始存储库。
应该如何决定哪个分支/叉的是适合我?
请您网罗考虑同时面临着这样的问题。
作为建议由John Feminella,每个人都应该使用(通常是稳定的)“发布了项目的版本”。
我同意这一点,当然,但这个问题仍然是有关在下列情况之一:
- 原作者不再维护该代码。
- 还有就是我需要一个没有在原来的实现,但在超过一个叉实现不同功能
- 该代码仍在发展阶段,每个叉具有从原来的(无论是在功能,还是发展的决策和实施)一定的差异
我遇到这样的情况很多次,目前原作者仍然试图保持维持回购,但他似乎没有足够的时间,其他叉较为活跃。 叉没有被宣布为生产中使用足够稳定。 上次我遇到的原始资料库还没有实现的功能,这对我来说重要的这种情况。
因此,在这种情况下,我需要选择最稳定的叉,试试我的代码中使用它,测试它彻底,并可能以使其稳定贡献了一些改进。
更新:OP澄清了他原来的问题,表示有问题的项目已经死了。
由于项目是死的,它有N个叉,采摘“最佳叉”取决于多种因素,通常的策略:
有没有人宣布,他们正在接管保养项目? 搜寻新闻的邮件列表,公共论坛,等等(不只是在GitHub上)。 如果是这样,开始以下是叉。
是否有对网络图叉子已经承诺从另一个叉来(而不是说, master
)? 如果是这样,这表明支持是解决此另一个叉合并作为一个可能的替代死去的项目。
如果这些不工作,做一些更多的挖掘:是以前和周围分出一些时间,现在的支持项目的组织有变? 如果是这样,或许其他项目将满足您的需求。
做不到这一切,有时项目只是没有继续去支持。 如果是的话,也许现在是时候划伤你自己的痒!
原来的答案:
在这几点意见:
在一般情况下,你应该使用一个项目的发布的版本 ,而不是选择一个特定的叉子或分支机构。 如果不这样做,你的依赖会改变每一次一个新的项目提交的更新,这可能导致难以发现的错误在自己的代码。
如果你决定,你总是希望最新版本,您能够接受的,该风险,然后使用该项目的master
分支,因为这是官方的。 这会是你要寻找当您访问存储库的主网页的默认分支。
人们通常叉库,使和某种修改原来的代码库征求反馈意见。
所以,除非你对修改合作,或除非你有在抢先体验到具体的修改特别感兴趣, 你不需要担心其他叉。
在极少数情况下,一个项目的官方发展主线分支将被称为比其他一些master
。 在这种情况下,您应该咨询自述看,你应该看看哪个分支。
要完成约翰的回答。
我使用http://gitpop.heroku.com这对寻找最流行和活跃叉有用。 这是很基本的,但它确实工作。
编辑:正如在2014年3月,GitPop坏了,所以我写了我自己,因为这是对我有用。 http://gitpop2.herokuapp.com
文章来源: How to choose the right branch/fork to use by looking on the github's network graph?