Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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_Deployment - Fatal编程技术网

独立的开发和部署git存储库

独立的开发和部署git存储库,git,deployment,Git,Deployment,我最近遇到了一种管理项目及其可交付成果的方法。项目团队正在使用git存储库进行开发。有另一个存储库用于部署工件。我可以看到这种方法的几个好处 保持部署历史记录干净(没有开发人员提交) 对部署存储库的访问受限(没有开发人员可以推动掌握和中断内容,因为他们无权访问部署存储库) 所有依赖项都位于部署存储库中。这降低了在部署的不同阶段运行bower install或类似依赖关系管理器并获得不同结果的风险 在您看来,这种方法的优点和缺点是什么?主要的优点是将可交付工件(可以很大,可以包括二进制文件)与源r

我最近遇到了一种管理项目及其可交付成果的方法。项目团队正在使用git存储库进行开发。有另一个存储库用于部署工件。我可以看到这种方法的几个好处

  • 保持部署历史记录干净(没有开发人员提交)
  • 对部署存储库的访问受限(没有开发人员可以推动掌握和中断内容,因为他们无权访问部署存储库)
  • 所有依赖项都位于部署存储库中。这降低了在部署的不同阶段运行bower install或类似依赖关系管理器并获得不同结果的风险

  • 在您看来,这种方法的优点和缺点是什么?

    主要的优点是将可交付工件(可以很大,可以包括二进制文件)与源repo分开

    • 主repo仍然是一个仅源代码的repo(意味着文本内容、无二进制文件或少量二进制文件)
    • 交割回购协议:
      • 独立管理,
      • 不必完全克隆(浅克隆就足够了,因为这项功能)
      • 如有必要,可进行“清理”(清理旧交付品,现已过时)
    主要的不方便之处(对于这两种方法)是将二进制文件保存在git repo中(这不适合这种工件)。
    存在替代方案(使用git):。

    或者,您也可以这样做)

    讨论使用单个Git存储库实现相同功能的管理模型;至于(2),您可以(也应该)通过SSH限制对部署服务器的访问。限制对部署服务器的访问不会阻止人们意外地推送到主服务器(甚至使用--force)。该项目仍在使用上述git分支模型,但在项目准备发布(主分支中的所有更改)后,主分支的快照被复制到新发布分支中的部署存储库中,并且该发布分支已在服务器上签出。感谢VonC。你能想到这种方法的一些缺点吗?@Shaggy,你现在应该有足够的声誉来提高投票率;)感谢git附件和bup。我得出的结论是,拥有不同git存储库的解决方案毕竟还不错。