9

我需要使用在 github 上公开可用的第 3 方代码。我正在查看该代码的 github 网络图,我可以看到其他分支有一些未合并到原始存储库中的提交。

应该如何决定哪个分支/叉子适合我?

在遇到此类问题时,请考虑您的考虑。

正如John Feminella 所建议的,应该始终使用(通常是稳定的)“项目的已发布版本”。

我当然同意这一点,但这个问题在以下情况之一中仍然相关:

  • 原作者不再维护该代码。
  • 我需要的一项功能在原始版本中未实现,但在多个分叉中以不同方式实现
  • 代码仍处于开发阶段,每个分支都与原始版本有一些差异(无论是在功能上,还是在开发决策和实现上)

我遇到过很多次这样的情况,目前原作者仍在努力维护回购,但似乎他没有足够的时间,其他分叉更活跃。没有一个分叉被宣布足够稳定以供生产使用。上次我遇到这种情况时,原始存储库也没有实现对我很重要的功能。

所以在这种情况下,我需要选择最稳定的分支,尝试在我的代码中使用它,彻底测试它,并可能做出一些改进以使其稳定。

4

2 回答 2

7

更新: OP 澄清了他最初的问题,表明该项目已经死了。

鉴于一个项目已经死亡并且它有 N 个分叉,选择“最佳分叉”的通常策略取决于许多因素:

  • 有没有人宣布他们将接管该项目的维护?在邮件列表、公共论坛等(不仅仅是在 GitHub 上)搜索新闻。如果是这样,请开始跟随那个叉子。

  • 网络图上是否有来自另一个分叉(而不是,比如说master)提交的分叉?如果是这样,这表明支持正在围绕这个另一个分支合并,作为死项目的可能替代品。

  • 如果其中任何一个都不起作用,请进行更多挖掘:该项目是否存在前段时间分离的项目变体,现在围绕哪些支持组织?如果是这样,也许其他项目会满足您的需求。

如果做不到这一切,有时项目就没有继续进行的支持。如果是这样,也许是时候自己挠痒痒了!


原答案:

对此有几点评论:

  • 通常,您应该使用项目的已发布版本,而不是选择特定的分支或分支。如果你不这样做,你的依赖项将在每次项目更新时发生新的提交,这可能会导致你自己的代码中难以发现的错误。

  • 如果您决定始终想要最新版本并且您可以接受这种风险,那么请使用项目的master分支,因为那是官方分支。当您访问存储库的主页时,这将是您正在查看的默认分支。

  • 人们通常分叉存储库,以对原始代码库进行某种修改并征求反馈。

  • 因此,除非您正在就该修改进行协作,或者除非您对尽早访问该特定修改特别感兴趣,否则您无需担心其他分叉。

在极少数情况下,项目的官方主线开发分支会被称为master. 在这种情况下,您应该查阅 README 以了解您应该查看哪个分支。

于 2012-04-29T12:21:02.867 回答
7

完成约翰的回答。

我正在使用http://gitpop.heroku.com,这对于查找最流行和活跃的分叉很有用。这是非常基本的,但它确实有效。

编辑:与 2014 年 3 月一样,GitPop 坏了,所以我自己写了,因为它对我有用。 http://gitpop2.herokuapp.com

于 2013-08-09T07:43:19.987 回答