返回

在公司服务器搭建 Git 服务器并使用 HOOK 自动部署

开发工具

鉴于 GitHub 的服务器同步过慢甚至可能无法访问,为了不影响日常开发工作,本文将记录搭建公司服务器 Git 服务端的全过程。需要注意的是,截至目前(2020 年 01 月 20 日),yum 的 Git 版本才 1.8.3.1,而最新的 Git 版本已经达到 2.9.2。

一、准备工作

1. 安装并配置 Git

首先,安装必要的软件包:

yum install git

然后,配置 Git:

git config --global user.name "Your Name"
git config --global user.email "your@email.com"

2. 创建 Git 仓库

在服务器上创建一个新的 Git 仓库:

mkdir /var/git
cd /var/git
git init --bare my_repo.git

3. 克隆 Git 仓库

在本地计算机上克隆 Git 仓库:

git clone ssh://user@server/var/git/my_repo.git

二、设置钩子(HOOK)

1. 什么是钩子

钩子(HOOK)是 Git 中的一种特殊机制,允许在特定事件发生时执行自定义脚本。在本文中,我们将使用钩子在每次提交时自动部署项目。

2. 创建钩子脚本

在本地计算机上创建一个新的脚本文件,并将其命名为 deploy.sh:

#!/bin/bash

# 更新代码
cd /var/www/my_project
git pull

# 安装依赖项
npm install

# 构建项目
npm run build

# 部署项目
sudo cp -r dist/* /var/www/html

3. 将钩子脚本复制到服务器

将 deploy.sh 脚本复制到服务器的 /var/git/my_repo.git/hooks 目录下:

scp deploy.sh user@server:/var/git/my_repo.git/hooks

4. 设置钩子权限

在服务器上,使用以下命令设置钩子脚本的权限:

chmod +x /var/git/my_repo.git/hooks/deploy.sh

三、测试钩子

1. 本地提交代码

在本地计算机上,对项目进行一些修改并提交代码:

git add .
git commit -m "Update code"
git push

2. 查看服务器上的项目

在服务器上,查看项目是否已经更新:

cd /var/www/my_project
git pull

如果项目已更新,则表示钩子已成功设置。

四、总结

通过以上步骤,您已经成功在公司服务器上搭建了 Git 服务器并设置了自动部署钩子。这样,每次提交代码时,项目都会自动更新。