GIT工作流程开发(所有文件)与生产(部分文件)

时间:2016-11-22 20:21:01

标签: git production dev-to-production

设定:

1个GIT存储库,包含客户端/服务器/共享代码,当前位于1个分支上。

构建过程:

  • 客户端是一个基于Web的应用程序,需要 最小化/捆绑/等,产生一个文件
  • 服务器 现在仍然保持不变,虽然它可能会在以后捆绑

问题:

我不希望所有文件都在我的生产服务器上,只是客户端的捆绑版本和服务器文件夹。如果我将主分支拉入,我将获得所有文件而不仅仅是捆绑版本。

解决方案:

??? - 我该如何处理?创建其他存储库,创建多个分支?这通常是怎么做的?

2 个答案:

答案 0 :(得分:3)

通常,您希望将源代码控制,构建过程和可部署工件分开。 Git主要用于Source Control,公认的做法是只包含源代码。

然后你会用一些构建工具(Jenkins,bamboo等)构建它 然后,您可以使用构建工具的构建结果,或者如果您更喜欢使用Nexus或ar​​tifactory等工件的版本控制。

这可能听起来很复杂,但未来会避免很多问题。

答案 1 :(得分:0)

您可以使用.gitattributes (5) export-ignore directive选择版本控制中的文件,但不需要进行生产。

如果您使用像Capistrano 3这样的部署系统,它实际上会使用git-archive (1)。此命令将创建要部署在发布文件夹中的存档,它将遵守export-ignore文件中的.gitattributes规则。

对于您的客户端文件,您可以在本地或在您部署的计算机上捆绑文件,然后rsync将其捆绑或以任何其他方式将其上载到生产计算机上的release文件夹,然后再激活新版本。< / p>

我还建议您实际将客户端文件部署到CDN,服务器只会提供带有CDN版本化客​​户端的HTML页面。