Git仓库自动部署更新网站前端代码的完整实操教程

为什么需要自动部署网站前端代码

每次修改前端代码后,都要手动压缩、上传到服务器,不仅繁琐,还容易漏传文件。
如果能做到:本地 git push 之后,服务器自动拉取最新代码,网站就直接更新——这就是 Git 仓库自动部署的核心价值。
适合个人博客、企业官网、活动页面等前端静态项目或前后端分离项目的前端部分。

准备工作:确认环境与权限

开始配置前,先检查三件事:

  • 服务器已安装 Git:通过 git --version 确认,如果没有,运行 yum install git -yapt install git -y
  • 拥有一个 Git 仓库:推荐使用 Gitee 或 GitHub,已将前端代码推送到仓库。
  • 网站目录权限正确:通常网站目录归 www 用户(比如宝塔面板),后续操作要避免权限冲突。

核心操作:配置 Webhook 自动拉取代码

第一步:服务器生成 SSH 密钥并添加到仓库

登录服务器(建议使用 rootwww 用户),生成密钥:

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 → 添加。
填写以下信息:

  • URLhttp://你的服务器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 白名单限制,提高安全性。

分享到:
上一篇
robots.txt规范配置允许搜索引擎抓取全站
下一篇
数据库定时优化碎片提升读写查询速度:数据库定时优化碎片
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意