返回
在公司服务器搭建 Git 服务器并使用 HOOK 自动部署
开发工具
2023-11-06 14:20:34
鉴于 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 服务器并设置了自动部署钩子。这样,每次提交代码时,项目都会自动更新。