Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多平台项目的最佳Git策略_Git_Version Control_Github - Fatal编程技术网

多平台项目的最佳Git策略

多平台项目的最佳Git策略,git,version-control,github,Git,Version Control,Github,您好,我有一个应用程序,它有几个不同的应用程序,它们是: “客户机-服务器”应用程序(java) “许可证服务器”应用程序(java)(我正在使用git将此应用程序部署到heroku) “自动更新应用程序”(java) “客户应用程序”(目标c) 关于git,我所知道的只是标准的提交命令之类的东西,我拥有5个私有存储库的github成员资格。所以我想知道在这方面使用git的最佳方式是什么?可能的答案是: 创建一个git回购,并将这些独立的项目放在“分支”中 创建一个git回购协议,然后将这些项目

您好,我有一个应用程序,它有几个不同的应用程序,它们是:

  • “客户机-服务器”应用程序(java)
  • “许可证服务器”应用程序(java)(我正在使用git将此应用程序部署到heroku)
  • “自动更新应用程序”(java)
  • “客户应用程序”(目标c)
  • 关于git,我所知道的只是标准的提交命令之类的东西,我拥有5个私有存储库的github成员资格。所以我想知道在这方面使用git的最佳方式是什么?可能的答案是:

  • 创建一个git回购,并将这些独立的项目放在“分支”中
  • 创建一个git回购协议,然后将这些项目放在单独的Fodler中
  • 只是把它们放在不同的git存储库中 谢谢你的回答

    这里的拙见:

  • 将这些东西放在分支中是绝对错误的,git中的代码分支总是表示“相同”代码库的不同状态
  • 我也不会这样做,不过如果这两台服务器和两个应用程序相互依赖,将它们放在同一个存储库中可能是一个好主意,这将是我的最爱
  • 如果这4个应用程序足够不相交,那就是解决方法
  • 创建一个git回购,并将这些独立的项目放在“分支”中
  • 创建一个git回购协议,然后将这些项目放在单独的Fodler中
  • 只是把它们放在不同的git存储库中
  • 我会选择2。

    取决于各种应用程序/项目的大小,或者它们是如何独立的,您可以考虑<强> 3 < /强>,但是它可能会增加太多的开销。即使是大型存储库,git也能非常高效地处理。单个存储库还可以简化发布过程,因为您可以将应用程序作为一个整体进行标记/分支,而不需要在不同的存储库上进行标记/分支

    选项1不是一个好办法-您通常使用分支来开发功能、修复bug和管理发布。另见


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


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

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

    如果不同的开发人员/团队在不同的应用程序上工作,那么如果应用程序位于各自的存储库中,他们会发现这会更容易


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

    将heroku应用程序与其他应用程序分离,并将其他项目放入sperate文件夹似乎是一种方法。。谢谢你的回答,希望我能接受所有的答案:)链接末尾的“.”会断开链接:)但我正在读它now@Andreas好的,谢谢。现在我认为2个可能更好。例如,我为3个移动平台开发了移动应用程序。每个项目都在独立的git存储库中。我有3台电脑(Win PC、Mac和Linux for git server)。最后,我的两台开发机器上都有3个存储库,我必须记住手动拉/推更改,在阅读了您的答案后,我发现将所有存储库放在一个repo中可能更好。但我是唯一的单一开发者…@MichK是的,如果它是同一个应用程序,但只在不同的平台上,我无论如何都会使用2,并将平台特定的部分放在平台特定的子目录中。现在跳到github,我看到,作为平台的一个功能,您可以为整个存储库选择gitignore文件。我假设,如果您想在一个存储库中组合不同的平台,您还应该组合它们的相关gitignore文件,希望没有冲突。