git 拉取或 git 检出部署

git pull or git checkout to deploy

部署到服务器的正确方法是什么 - 是吗

git pull

在工作目录中 (/var/www/myproject)

git --work-tree=/var/www/myproject --git-dir=/srv/git/myproject.git checkout -f

两者都需要一个 post-receive 挂钩。我测试了两者,它们都可以工作,但是什么是最佳实践?

您不应在服务器中使用 git 存储库来触发构建。您应该将存储库和部署服务器分开。

最好的方法就是使用 post-接收(推送)挂钩来触发 CI 服务器中的构建。然后 CI 可以打包整个服务器代码并更改配置,然后复制到目标服务器,停止旧服务器,进行一些升级并启动新服务器。

好的是可以使用符号link来切换新旧代码,减少复制时的不一致。

您可以使用 Jenkins、GoCD、TeamCity 等作为 CI 服务器。