如何最好地与SmartGit共享代码

如何最好地与SmartGit共享代码,git,version-control,smartgit,Git,Version Control,Smartgit,我有许多单独的项目,它们共享一些通用代码。在Git中实现这一点的最佳实践是什么,特别是SmartGit 将所有内容都放在一个巨大的存储库中 为每个项目建立一个存储库,为共享代码建立一个存储库,并使用 为每个项目建立一个存储库,为共享代码建立一个存储库,并使用。谁能告诉我SmartGit是否支持这一点,以及如何实现这一点 这些方法的潜在缺陷是什么?SmartGit的最佳实践是什么?我建议为所有项目使用一个存储库或使用子模块: 如果您的公共代码与您的项目紧密联系在一起,那么重构和其他类型(AP

我有许多单独的项目,它们共享一些通用代码。在Git中实现这一点的最佳实践是什么,特别是SmartGit

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

  • 为每个项目建立一个存储库,为共享代码建立一个存储库,并使用

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


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

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

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

  • 如果您的公共代码更像是一个独立的库,并且可以随时使用该库的较新版本更新您的项目,那么子模块将是更好的选择。SmartGit很好地支持这些存储库,并且具有独立的存储库,这使您可以灵活地在以后与其他人共享您的部分存储库

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


    • 我也会使用单独的项目。我们遇到了较大文件和git+SmartGit的内存问题。我现在正在和syntevo对话。在最新版本的SmartGit中,复制注释的功能非常有用。希望这有帮助

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