github - 如何通过查看 github 的网络图来选择要使用的正确分支/fork?

标签 github branch branching-and-merging fork

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

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

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

suggested作者 John Feminella,应该始终使用(通常是稳定的)“项目的已发布版本”。

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

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

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

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

    最佳答案

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

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

  • 有没有人宣布他们将接管该项目的维护?在邮件列表、公共(public)论坛等(不仅仅是在 GitHub 上)搜索新闻。如果是这样,请开始跟随那个 fork 。
  • 网络图上是否有来自另一个 fork (而不是 master )的提交的 fork ?如果是这样,这表明支持正在围绕这个另一个分支合并,作为死项目的可能替代品。
  • 如果其中任何一个都不起作用,请进行更多挖掘:该项目是否存在前段时间分离的项目变体,现在围绕哪些支持组织?如果是这样,也许其他项目会满足您的需求。

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

    原答案:

    对此有几点评论:
  • 通常,您应该使用项目的已发布版本,而不是选择特定的分支或分支。如果你不这样做,你的依赖项将在每次项目更新时发生新的提交,这可能会导致你自己的代码中难以发现的错误。
  • 如果您决定始终需要最新版本并且您可以接受该版本的风险,请使用项目的 master分支,因为那是官方的。当您访问存储库的主页时,这将是您正在查看的默认分支。
  • 人们通常 fork 存储库,以对原始代码库进行某种修改并征求反馈。
  • 因此,除非您正在就该修改进行合作,或者除非您对尽早访问该特定修改特别感兴趣,否则 您无需担心其他 fork 。

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

    关于github - 如何通过查看 github 的网络图来选择要使用的正确分支/fork?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372063/

    相关文章:

    java - 无法从已编译的 github 库导入类

    Github 操作作业超时

    visual-studio - TFS > 分支 : Converting Source Folder To Branch

    .net - 颠覆 : Branch per Environment?

    Git - 两个分支上具有不同版本的相同文件, merge 时不想覆盖

    svn - Subversion 切换问题 - Windows OK,Ubuntu 不行!

    git - 如何在不 pull 的情况下将更改推送到github

    git - 跟踪 git 中子文件夹的版本号

    java - 多svn分支中多模块maven项目的最佳实践是什么

    mercurial - 关闭的分支机构如何影响 Mercurial 的业绩?