多平台项目的最佳Git策略

dre*_*der 8 git version-control github

嗨,我有一个应用程序有几个不同的应用程序,这些是:

  1. "客户端服务器"应用程序(java)
  2. "许可证服务器"应用程序(java)(我正在使用git将此应用程序部署到heroku)
  3. "自动更新应用程序"(java)
  4. "客户申请"(objective-c)

我所知道的git是标准的提交命令和类似的东西,我有一个5个私有存储库的github成员资格.所以我想知道在这个上使用git的最佳方法是什么?可能的答案是:

  1. 创建一个git repo并将这些单独的项目放在"分支"中?
  2. 创建一个git仓库并将这些项目放在单独的fodlers中?
  3. 把它们放到不同的git存储库中?

谢谢回答.

lev*_*nis 9

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

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

忘记1) - 分支只是一个指向提交的指针,所以不要将不同的项目添加到不同的分支.


And*_*ter 6

  1. 创建一个git repo并将这些单独的项目放在"分支"中?
  2. 创建一个git仓库并将这些项目放在单独的fodlers中?
  3. 把它们放到不同的git存储库中?

我会选择2.

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

选项1不是要走的路 - 您通常使用分支进行功能开发,错误修复和管理版本.另请参见一个成功的Git分支模型.


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

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