多平台项目的最佳Git策略

时间:2013-03-19 08:35:27

标签: git version-control github

您好我有一个应用程序有几个不同的应用程序:

  1. “客户端服务器”应用程序(java)
  2. “许可证服务器”应用程序(java)(我正在使用git将此应用程序部署到heroku)
  3. “自动更新应用程序”(java)
  4. “客户申请表”(objective-c)
  5. 我所知道的git是标准的提交命令和类似的东西,我有一个5个私有存储库的github成员资格。所以我想知道在这个上使用git的最佳方法是什么?可能的答案是:

    1. 创建一个git repo并将这些单独的项目放在“分支”中?
    2. 创建一个git仓库并将这些项目放在单独的fodlers中?
    3. 只需将它们放入不同的git存储库中?
    4. 感谢您的回答。

3 个答案:

答案 0 :(得分:8)

我的决定是基于是否直接从Git部署应用程序。我会看看选项2)和3)的组合 - 我肯定会将许可证服务器应用程序放入其自己的存储库中,因为它已部署到Heroku。我对Heroku部署并不太熟悉,但它可能会部署特定分支中的所有内容,因此如果您将所有应用程序添加到同一个仓库中的文件夹中,那么它们将全部一起部署到Heroku。这可能不是你想要的。

如果不同的开发人员/团队在不同的应用程序上工作,如果应用程序位于他们自己的独立存储库中,他们会发现它更容易。

忘记1) - 分支只是指向提交的指针,因此不要将不同的项目添加到不同的分支。

答案 1 :(得分:5)

  
      
  1. 创建一个git仓库并将这些单独的项目放入"分支机构" ?
  2.   
  3. 创建一个git repo并将这些项目放在单独的fodlers中?
  4.   
  5. 只需将它们放入不同的git存储库?
  6.   

我会选择 2。

根据各种应用程序/项目的大小或它们的独立程度,您可能会考虑 3 ,但可能会增加太多开销。即使是大型存储库也可以通过git非常有效地处理。单个存储库也使发布过程更容易,因为您可以整体标记/分支应用程序,而不需要在不同的存储库上执行此操作。

选项 1 不是要走的路 - 您通常使用分支进行功能开发,错误修复和管理版本。另请参阅A successful Git branching model


基于评论和其他答案,如果我进一步考虑,主要取决于项目之间的依赖关系。对于客户端和服务器应用程序,我肯定会使用 2。,并且很可能还包括自动更新应用程序。

正如其他人写的那样,如果许可证服务器真的是独立的(那么许可证服务器的客户端部分呢?),对这个部分使用单独的存储库可能是正确的解决方案。我的看法是,使用多个存储库可能会使发布过程和设置开发人员环境的过程复杂化。最后,解决方案可能真正在 2。 3。之间取得适当的平衡,基于项目的依赖程度或独立程度。

答案 2 :(得分:2)

这里的拙见:

  1. 将这些东西放在分支中肯定是错误的,git中的代码分支总是表示“相同”代码库的不同状态
  2. 我也不会这样做,但如果两个服务器和两个应用程序相互依赖,那么将它们放在同一个存储库中可能是个好主意,这将是我最喜欢的
  3. 如果4个应用程序分离不够,那么就可以了。