Git Repo应该是Visual Studio中的解决方案级别还是项目级别

时间:2009-07-07 19:47:53

标签: visual-studio git

如果我有一个包含多个项目的C#解决方案,那么在解决方案文件夹或每个项目文件夹中创建Git仓库会更好吗?多个开发人员将致力于这些项目。你有什么经历?

5 个答案:

答案 0 :(得分:19)

我使用了几个(有时是重叠的)解决方案来包含一组相关的独立应用程序和共享库。正如其他人所提到的,你真的不希望有一个包含多个独立项目源的Git存储库,因为它很难跟踪孤立的变化。

因此,如果您的解决方案是按我的方式构建的,那么您肯定需要为每个项目提供单独的Git存储库。这对我来说效果很好,适用于10到12个应用程序,并且不会产生与您想象的相同的维护开销。

如果您的解决方案真的是单一的(并且您确定您希望永远这样),那么只有一个存储库可能是有意义的。

答案 1 :(得分:6)

这取决于。 git存储库最适合包含单个配置项,它具有自己独立的生命周期。如果您的项目有自己的发布周期并在多个解决方案之间共享,那么将它们放在自己的存储库中可能是有意义的。但是,通常,它是代表配置项的解决方案,其中所有组成项目构成同一构建的一部分。在这种情况下,解决方案级别的单个git存储库更有意义。

答案 2 :(得分:5)

git子模块在这里可能值得考虑。每个项目都有它自己的仓库,解决方案获得一个仓库,项目是子模块。

答案 3 :(得分:4)

我认为您的解决方案代表某种产品,而项目只是产品的一部分。

在这种情况下,我会在解决方案级别创建存储库。这样,一次构建整个产品就容易多了,特别是如果项目相互依赖的话。

答案 4 :(得分:2)

可以在该博客上阅读一些关于该主题的3个解决方案: http://blogs.atlassian.com/2014/04/git-project-dependencies/

  1. 包管理工具,即VS中的nuget,因此使用对包/已编译模块的引用
  2. git submodule(仅限VS中的命令行?)
  3. 其他构建和跨堆栈依赖工具
  4. 另一种解决方案是从其他仓库中添加一个项目并将其从当前仓库中取出,后者使用团队资源管理器提交其更改。