【发布时间】:2015-04-30 09:15:56
【问题描述】:
我目前正在使用 Git、Git Flow、Gulp 和 Bower。我正在处理develop 分支并使用Git Flow 创建发布到master 分支。所以develop 等于我的本地和测试环境,release/version 等于验收环境,master 分支等于生产环境。见:http://nvie.com/files/Git-branching-model.pdf。在每个环境中运行 Git,因此部署无非是:git pull origin master。
我使用 Bower 处理了一些依赖项,例如 Bootstrap 和 Font Awesome,我正在使用 Gulp 观看 .less 文件以“编译”为 css、缩小 css/js 等。
现在转向问题:我的 Git 存储库中应该包含什么?假设我正在开发一个 Magento 项目,将 Magento 和 Bower 中的所有依赖项放在存储库中将是矫枉过正。目前我只排除node_modules(用于Gulp)和bower_components(包含依赖项)目录,当我运行Gulp时,来自Bootstrap的.less文件将与我的项目相关@987654333“合并”和“编译” @ 文件。 “已编译”.css 文件当前包含在我的存储库中,否则无法仅使用 git pull 进行部署。为了让它在 Git 中没有“编译”版本的情况下工作,我必须在生产服务器上运行 Gulp。
在我的 Git 存储库中没有我的平台(Magento 或 Wordpress)但保持轻松更新的可能性的最佳方法是什么?我遇到了这个解决方案:http://blog.g-design.net/post/60019471157/managing-and-deploying-wordpress-with-git 他们正在使用 Git 子模块。不错的解决方案,但是这样平台需要位于子目录中。不理想,因为我必须“破解”以使其以这种方式工作(复制
index.php并更改包含路径等)。插件/模块呢?第三方插件也不应该在我的存储库中?只有我自己创建的插件。但并非所有第 3 方插件都具有可与 Git 子模块一起使用的 Git 存储库。对于 Wordpress,它只是一个目录,所以理论上这是可能的,但对于 Magento,大多数插件不仅仅是一个目录(它们在
app/code、app/design、skin等目录中有文件)。我有很多带有多个匹配插件/模块的 Wordpress 和 Magento 站点,现在每个插件/模块都在每个站点存储库中。“编译”文件是否应该在存储库中?如果您问我:不,但我目前正在这样做,因此很容易部署。在生产服务器上安装 Bower 并运行 Gulp 以获取依赖关系并在
git pull之后立即在生产服务器上“编译”是否普遍?继续在生产环境中运行 Gulp watcher(就像我在本地做的那样)会占用一些额外的不必要资源?
我希望有人能把我引向正确的方向。
【问题讨论】:
标签: wordpress git magento deployment build