Git工作流程和部署,同步

时间:2012-11-11 19:29:16

标签: git workflow rsync

我一直在寻找适合我们的工作流程,但我仍然找不到完整的工作流程。希望你能帮助我们,一个由两位开发人员组成的简单团队!

据我所知,最好的工作流程是使用git将所有更改推送到公共开发服务器,然后将这些更改上传到部署服务器。

有很多指南,如果所有更改都是由我们的开发人员完成的,那么很容易解决。我认为我们的常见问题是,部署服务器上也发生了很多变化。常见的是最终用户在其CMS中上传新图像时。一些最终用户甚至通过CMS界面编辑CSS文件。我们如何让我们的开发服务器和部署服务器同步? Git的? rsync的?组合

/马丁

3 个答案:

答案 0 :(得分:1)

通常的做法是不通过git跟踪用户相关的更改,因此您永远不需要从生产服务器端更新存储库。

用户图像应放在单独的目录,中央资产服务器或Amazon S3上。将CMS相关更改存储在数据库中也是一个好主意。

答案 1 :(得分:1)

从概念上讲,您必须将代码更改与内容更改(尤其是用户生成的内容)分开。 Git不适合进行整个站点备份,因此索引快速变化的用户内容只会创建一个过低的存储库,效率低下,最重要的是,不可移植。

使用Git跟踪允许用户编辑/贡献/维护其内容的文件的更改。使用集中式服务器(我们使用gitolite)为您的工作流程。正如@iltempo所提到的,将用户生成的内容分开,并使用.gitignore将其保存在存储库之外。

使用Git存储库,您可以使用git hooks来执行脚本 - 很多人将这些用于自动部署,但您可以轻松地使用rsync自动备份和同步服务器。 rsync非常适用于此,因为您可以选择仅添加新内容,从而降低事务处理时间。因此,从概念上讲,git会处理代码,rsync会处理其他所有内容,而git hook会使代码发生。

我们在CMS中使用它,它是一个救生员。

答案 2 :(得分:0)

粗略地说,您需要从源树和/或部署过程中排除某些文件夹/文件。 Rsync就可以了。

您是否想要continuous integration

要自动化您的工作流程,我建议您使用Jenkins

使用Jenkins,您可以自动化构建,尽可能自动化测试,甚至可以在将提交推送到Git存储库,临时服务器或生产时部署应用程序。

Jenkins不仅限于Java项目,您可以使用它构建任何项目。

相关问题