返回博客

如何使用 VPS 配置 Git 自动部署

如何使用 VPS 配置 Git 自动部署

Git 是软件开发领域最流行的版本控制系统。它是开源的,自 2005 年以来一直由 Linus Torvalds,著名的 Linux 的创建者。如今,数量惊人的软件项目(包括商业项目)都使用 Git 进行版本管理。

Git 采用分布式架构,使其成为 DVCS(分布式版本控制系统) 的完美范例。使用 Git,我们可以同时管理本地和远程仓库。在本指南中,我们将演示如何使用 VPS 配置 Git 项目的自动部署.

前提条件

在本指南中,将有一个本地仓库和一个 VPS 上的远程仓库。本地仓库将向远程仓库推送更改。从远程仓库,我们可以将更改推送到 beta 或  live 分支。为此,您需要先满足几个前提条件。

为了与 VPS 建立安全连接,我们将使用 SSH。值得庆幸的是,Git 也支持将 SSH 作为连接远程仓库的协议。本指南探讨了 在 Ubuntu 上配置 SSH 以连接到远程服务器.

配置 VPS

在我们的远程服务器上,我们将进行以下配置:

  • Live 目录: /var/www/dummy-domain.com
  • 服务器仓库: /var/repo/site.git

从本地机器,Git 将把更新推送到 VPS 仓库。在 VPS 仓库中,我们将配置一个脚本,Git 将使用该脚本自动将其推送到 live 目录。也可以为 beta 版本配置仓库。

  • 创建仓库

连接到 VPS 并创建仓库位置:

Deployment with Git screenshot 1

接下来,初始化 Git 仓库:

Deployment with Git screenshot 2

这里,标志 --bare 表示将没有源文件,只有版本控制组件。

  • 钩子

接下来,我们将为仓库配置钩子。每个 Git 仓库都包含一个名为 hooks 的文件夹。它包含用作钩子和各种自定义操作模板的示例文件。

根据 Git 的 官方文档,有三种类型的钩子:

  • pre-receive: 一旦服务器收到推送请求就会执行。
  • post-receive: 在推送请求完成时执行。
  • update: 类似于 pre-receive。但是,它在每个分支上执行一次。

在仓库所在位置,运行 ls 命令:

Deployment with Git code screenshot 3

将当前目录更改为 hooks:

Deployment with Git code screenshot 4

现在,创建 post-receive 脚本:

在脚本中,输入以下代码。请确保相应地更改目录位置:

Deployment with Git code screenshot 6

保存文件并关闭编辑器。将该文件设置为可执行文件:

Deployment with Git code screenshot 7

现在,每次推送完成时,Git 都会查看 post-receive 脚本并相应地将文件放到位。

配置本地机器

远程机器已准备好接收传入的 Git 项目更新。接下来,我们将配置本地仓库,将 VPS 用作远程 Git 服务器。

让我们创建一个示例 Git 项目目录:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

现在,初始化仓库:

Deployment with Git code screenshot 9

我们必须声明仓库的远程路径。在这里,我们将远程位置称为 live 分支。然后,运行以下命令:

sudo git remote

让我们测试一下。我们在项目目录中添加了一个 Shell 脚本:

project directory

接下来,将文件添加到项目中并进行提交:

Deployment with Git code screenshot 10

在下一个命令中,我们将把项目推送到 生产 服务器:

Deployment with Git code screenshot 11

Git 将使用 SSH 连接到 VPS。如果 SSH 连接配置为使用密码,Git 将要求输入身份验证密码。

Beta 仓库

如果项目不能一步部署到位怎么办?也许它需要在 beta 目录中进行进一步测试。使用目前介绍的方法,我们可以在 VPS 中创建另一个分支,称为 beta 分支。

  • 在 VPS 上配置 Beta 分支

首先,我们需要为 VPS 创建目录。连接到 VPS 并在 /var/www:

现在,我们需要一个 Git 仓库来作为 beta 分支:

初始化仓库:

sudo git init

就像之前一样,实现一个 post-receive 脚本:

sudo nano

之后,输入以下代码:

GNU nano

保存文件并关闭编辑器。将 post-receive 标记为可执行文件:

sudo chmod
  • 在本地机器上添加 Beta 仓库

我们现在准备将 beta 仓库添加到我们的本地仓库。在本地项目目录中,运行以下 Git 命令:

瞧!本地仓库现在已配置了 beta 远程仓库。尝试推送更改:

sudo git add
  • 在 VPS 中从 Beta 转移到 Live

假设所有更改都累积到了 beta 仓库。您如何将更改推送到 live 仓库?这非常简单。在 VPS 上的 beta 仓库中,我们添加本地的 live 仓库。然后,我们只需将 beta 版本推送到 live 仓库。

连接 to VPS,并运行以下命令:

然后,您可以将 beta 版本推送到 live:

sudo git push live master

结语

本指南成功演示了如何配置和使用 VPS 作为 Git 项目的远程仓库。VPS 可以自动部署最新的代码和文件,无需任何复杂的流程。它还可以作为多个开发团队之间协作的中心。

在 Git 的帮助下,您可以建立一个简单的自动部署机制。然而,为了进行妥善的项目管理,建议使用类似 GitLab 的工具。以下指南展示了 在 VPS 上安装和部署 GitLab ,以管理多个项目。您还可以查看 如何在 Ubuntu 20.04 上设置 GitLab 持续集成 (CI) 流水线.

祝您编程愉快!

author

Hark Labs

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。