Git仓库自动部署更新网站前端代码的完整实操教程
为什么需要自动部署网站前端代码
每次修改前端代码后,都要手动压缩、上传到服务器,不仅繁琐,还容易漏传文件。
如果能做到:本地 git push 之后,服务器自动拉取最新代码,网站就直接更新——这就是 Git 仓库自动部署的核心价值。
适合个人博客、企业官网、活动页面等前端静态项目或前后端分离项目的前端部分。
准备工作:确认环境与权限
开始配置前,先检查三件事:
- 服务器已安装 Git:通过
git --version确认,如果没有,运行yum install git -y或apt install git -y。 - 拥有一个 Git 仓库:推荐使用 Gitee 或 GitHub,已将前端代码推送到仓库。
- 网站目录权限正确:通常网站目录归
www用户(比如宝塔面板),后续操作要避免权限冲突。
核心操作:配置 Webhook 自动拉取代码
第一步:服务器生成 SSH 密钥并添加到仓库
登录服务器(建议使用 root 或 www 用户),生成密钥:
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/deploy_key -N ""
执行后得到两个文件:deploy_key(私钥)和 deploy_key.pub(公钥)。
复制公钥内容:
cat ~/.ssh/deploy_key.pub
将公钥添加到 Git 仓库的「部署公钥」中(路径一般在仓库设置 → 部署公钥 → 添加),勾选允许写入权限。
第二步:配置 SSH 免密登录
创建或编辑 ~/.ssh/config 文件:
Host gitee.com
HostName gitee.com
IdentityFile ~/.ssh/deploy_key
StrictHostKeyChecking no
测试连接:
ssh -T git@gitee.com
出现成功提示即代表免密配置完成。
第三步:将仓库克隆到网站目录
假设网站根目录是 /www/wwwroot/example.com,先清空该目录原有内容(请备份重要数据),然后克隆:
cd /www/wwwroot
git clone git@gitee.com:yourname/yourrepo.git example.com
如果网站目录已经存在代码,则进入目录后执行 git init 并关联远程仓库,或者直接使用 git pull 方式部署(此处以全新克隆为例)。
第四步:编写 Webhook 接收脚本
Webhook 的本质是:当仓库有 push 事件时,Git 平台向服务器指定 URL 发 POST 请求,服务器执行拉取操作。
在网站目录外创建一个安全目录,比如 /www/wwwroot/deploy/,放入以下 PHP 脚本(命名为 webhook.php):
&1');
echo $result;
注意:如果使用 GitHub,Header 名为 X-Hub-Signature-256,验证方式不同,请查阅官方文档。
设置脚本可执行权限:
chmod +x /www/wwwroot/deploy/webhook.php
第五步:设置 Webhook 推送地址
登录 Gitee(或 GitHub)仓库 → 管理 → WebHooks → 添加。
填写以下信息:
- URL:
http://你的服务器IP或域名/deploy/webhook.php - 密码:与脚本中
$secret一致 - 事件:勾选 Push
- 保存后点击「测试」,如果返回
Already up to date.或* master等拉取信息,说明配置成功。
避坑指南:新手常见的 3 个问题
问题 1:git pull 失败,权限报错
检查两点:
- SSH 私钥权限必须是 600:
chmod 600 ~/.ssh/deploy_key - 确保执行
git pull的用户(如www)能读取私钥。可以将脚本中的shell_exec前面加上sudo -u www,但需要配置 sudo 免密。更简单的做法:克隆时直接使用www用户。
问题 2:无法访问 webhook.php 地址
- 确认该 URL 对应的网站已正常绑定域名或 IP。
- 检查 Nginx/Apache 是否允许访问该目录(例如宝塔面板需要先添加站点并放行)。
- 如果使用宝塔防火墙,将 Git 仓库的 IP 加入白名单。
问题 3:代码已经拉取,但网站没变
- 检查网站根目录是否确实是克隆目录(常见错误:克隆到子目录)。
- 如果是前后端分离项目,确保编译后的静态文件在 Web 服务根目录下。可以在
git pull后追加构建命令(如npm run build)。
验证效果:推送一次看看
在本地修改一个文件(比如 index.html),提交并推送到仓库:
git add .
git commit -m "测试自动部署"
git push
稍等几秒,刷新你的网站,查看修改是否生效。
你也可以查看服务器的 Webhook 日志(通过 Gitee 的 Webhooks 记录查看请求状态)。
总结
通过以上步骤,你就成功实现了 Git 仓库自动部署更新网站前端代码。
以后每次修改代码,只需 git push,服务器会自动拉取最新版本,告别手动上传的烦恼。
如果遇到异常,优先检查 SSH 权限和 Webhook 脚本路径。
对于生产环境,建议将部署脚本放在非 Web 根目录下,并加上 IP 白名单限制,提高安全性。