如何使用 git 部署到测试服务器?

How can I use git to deploy to test server?

几年前用过redhat的open shift。更新服务器的方式是推送到 git 仓库。推送更改后,您可以在浏览器中测试您的应用程序。

我想在我的一个 VM 中实现它以进行测试。这样每当我推送到回购协议时,测试人员就可以立即看到我的更改。我在云 VM 中执行此操作,因为将对其进行测试的人在另一个国家/地区。我正在使用 nginx、pm2、nodejs 和 express。

我知道我可以直接通过 ssh 连接到服务器,提取更改,重新启动 pm2。但如果有更自动化的方式,那就更好了。

您所描述的称为 Continuos Integration/Continuous 部署,通常称为 CI/CD。有专门为此制作的工具。两个主要参与者是 jetbrains 的 TeamCity(根据您描述的项目规模免费使用)和 Jenkins(开源)。我建议您在 CI/CD 上搜索使用这两种产品之一的教程。

您可能想查看服务器端 git 挂钩。您可以在收到 git 推送时在服务器上执行 bash 脚本,并执行更新服务器所需的一切。

简要介绍一下:

挂钩可以在 .git/hooks 下找到。您将在此处找到以下文件:

  • 前push.sample
  • 提交-msg.sample
  • 前rebase.sample
  • post-update.sample
  • 准备提交-msg.sample
  • 前applypatch.sample
  • update.sample
  • 前commit.sample

举个例子,在你的服务器上,如果你将以下内容添加到你的 post-update 挂钩中,服务器将在收到提交时向你发送一封电子邮件:

#!/bin/bash
git show --name-status | mail -s "Received Push" youremail@email.com

在此文件中,您可能希望编写脚本以使用新收到的数据重建网站!