我有许多共享一些常用代码的独立项目。在Git中实现这一目标的最佳实践是什么,特别是SmartGit?
将所有内容放在一个巨型存储库中
拥有每个项目的存储库和共享代码的存储库,并使用Git Submodules。
拥有每个项目的存储库和共享代码的存储库,并使用Git Subtrees。谁能告诉我SmartGit是否支持它,以及如何实现它?
这些方法存在哪些潜在缺陷,以及SmartGit的最佳实践是什么?
答案 0 :(得分:6)
我建议要么为所有项目都有一个存储库,要么使用子模块:
如果您的公共代码与您的项目密切相关,那么您的公共代码的重构和其他类型(API)更改可能需要更改您的所有项目,因此如果您可以通过一次提交执行所有操作在一个存储库中,您将花费更少的时间进行版本控制(使用Git)。例如,Git 子模块不能简单地指向分支的HEAD,而只能指向特定的提交。总是将子模块更新为最新提交会很麻烦。
如果您的公共代码更像是一个独立的库,并且使用该库的较新版本随时更新您的项目就足够了,子模块将是更好的选择。它们得到了SmartGit的良好支持,并且拥有单独的存储库可以为您提供支持。稍后可以灵活地与他人共享您的一些存储库。
SmartGit中子树没有特别支持。
答案 1 :(得分:1)
我也会使用单独的项目。我们遇到了更大的文件和git + SmartGit的内存问题。我现在正在与syntevo对话。使用最新版本的SmartGit,复制注释的功能非常有用。希望这有帮助