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

Sha*_*ggy 5 git deployment

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

  1. 保持部署历史记录清洁(没有开发人员提交)
  2. 对部署存储库的有限访问(没有开发人员可以推动掌握和破坏事物,因为他们无权访问部署存储库)
  3. 所有依赖项都在部署存储库中.这降低了在部署的不同阶段运行bower install或类似依赖管理器并获得不同结果的风险.

您认为这种方法的好处和缺点是什么?

Von*_*onC 5

主要好处是将可交付的工件(可能很大并且可能包括二进制文件)与源 repo 分开

  • 主存储库仍然是纯源存储库(意味着文本内容,没有 - 或很少 - 二进制文件)
  • 交付回购:
    • 独立管理,
    • 不必完全克隆(浅克隆就足够了,因为该功能最近已得到改进
    • 如有必要,可以“清理”(修剪现在已经过时的旧交付)

主要的不便(对于这两种方法)是将二进制文件保存在 git 存储库中(这不适合此类工件)。
存在替代方案(使用 git):git-annex, bup, ...
或者您可以将这些可交付成果存储在专用参考中,例如Nexus(与 git repo 不同