【问题标题】:How to best share code with SmartGit [closed]如何最好地与 SmartGit 共享代码 [关闭]
【发布时间】:2011-11-17 16:57:39
【问题描述】:

我有许多共享一些通用代码的独立项目。在 Git(尤其是 SmartGit)中实现这一目标的最佳做法是什么?

  • 将所有内容集中在一个巨大的存储库中

  • 每个项目都有一个仓库,共享代码有一个仓库,使用Git Submodules。

  • 为每个项目创建一个存储库,并为共享代码创建一个存储库,并使用Git Subtrees。谁能告诉我 SmartGit 是否支持,以及如何实现?

这些方法有哪些潜在的缺陷,SmartGit 的最佳实践是什么?

【问题讨论】:

    标签: git version-control smartgit


    【解决方案1】:

    我建议为所有项目使用一个存储库或使用子模块:

    • 如果您的公共代码与您的项目紧密联系在一起,那么重构和其他类型 (API) 更改您的公共代码可能需要更改您的所有项目,所以如果您可以一次提交完成所有事情在一个存储库中,您将花费更少的时间进行版本控制(使用 Git)。例如,Git Submodules 不能简单地指向分支的 HEAD,而只能指向特定的提交。总是将子模块更新到最新的提交会很麻烦。

    • 如果您的通用代码更像是一个独立的库,并且不时使用该库的较新版本更新您的项目就足够了,子模块 将是更好的选择。 SmartGit 很好地支持它们,并且拥有单独的存储库可以为您提供例如以后可以灵活地与其他人共享您的部分存储库。

    • SmartGit 中没有对 子树 的特殊支持。

    【讨论】:

    • +1,非常有帮助。第一种选择有什么缺点吗?每当我发布我的一个项目的一个版本时,我会简单地分支整个存储库吗?
    • 分支整个存储库会很好,例如 Git允许像“project1/branch1”这样的分支名称(内部:/refs/heads/project1/branch1)。
    • 一个大存储库的主要缺点是它之后无法分离(AFAIK)。项目数量的可扩展性很可能不会成为问题,因为 Git 对于大型存储库也很有效。然而,SmartGit 的刷新时间会随着工作树大小的增加而增加(经常需要刷新)。只是给您一个想法:如果您的一个大存储库将包含大约 10K 文件,那么您无需为此烦恼。
    【解决方案2】:

    我也会使用单独的项目。我们遇到了较大文件和 git + SmartGit 的内存问题。我目前正在与 syntevo 进行对话。使用最新版本的 SmartGit,复制 cmets 的能力非常有用。希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多