2016-11-22 28 views
0

设置:其中包含客户机/服务器/共享代码,目前在1个分支GIT工作流开发(所有文件)对生产(部分的文件)

1 GIT存储库。

构建过程:

  • 客户是一个基于网络的应用和需要是 最小化/捆绑/等等,这结果在一个文件中
  • 服务器 现在仍然保持不变,但它可能稍后会捆绑在

问题:

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

解决方案:

??? - 我该如何处理?创建额外的存储库,创建多个分支?这通常如何完成?

回答

3

通常情况下,您想单独使用源代码管理,构建流程和可部署的工件。 Git主要用于源代码管理,公认的做法是只有源代码。

然后你可以用一些构建工具(詹金斯,竹子等)构建它 然后你可以使用构建工具的构建结果,或者如果你喜欢使用版本控制来处理像Nexus或ar​​tifactory这样的工件。

这可能听起来很复杂,但是在将来避免了很多问题。

+0

同意。您实际上正在讨论将代码从开发移植到生产的部署过程 – ItayB

+0

任何特定于Web应用程序的东西?目前,我正在为服务器和webpack使用node.js作为客户端JavaScript。目前正在研究,最终可能会回答我的问题:http://stackoverflow.com/questions/35054082/webpack-how-to-build-production-code-and-how-to-use-it –

+0

无法评论经验,但下面的[答案](http://stackoverflow.com/questions/21259181/how-to-package-deploy-node-js-express-web-application)似乎是在下载所有文件。然而,下面的[文章](https://strongloop.com/strongblog/node-js-deploy-production-best-ractice/)似乎也有道理(来自java背景) – dubes

0

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

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


为了您的客户端文件,你可以捆绑的文件在本地或者部署在机器上,然后rsync,或上传激活新版本之前,任何其他方式生产的机器上发布的文件夹。

我也可以建议您将客户端文件实际部署到CDN,并且服务器仅从CDN提供版本化客户端的HTML页面。

+0

谢谢,我会检查一下 –

相关问题