部署到服务器的正确方法是什么?是
工作目录中的git pull
(/ var / www / myproject)
或
git --work-tree = / var / www / myproject --git-dir = / srv / git / myproject.git checkout -f
两者都需要在一个裸仓库中的后接收挂钩。我测试了它们,它们都以任何方式工作,但最佳实践是什么?
答案 0 :(得分:3)
您不应该在服务器中使用git repo来触发构建。您应该将存储库和部署服务器分开。
最好的方法是使用post-receive(push)挂钩来触发CI服务器中的构建。然后CI可以打包整个服务器代码并更改配置,然后复制到目标服务器,停止旧服务器,执行一些升级并启动新服务器。
好的一点是,您可以使用符号链接切换旧代码和新代码,以减少复制时的不一致。
您可以将Jenkins,GoCD,TeamCity等用作CI服务器。