零基础搞定宝塔面板Git代码管理,从配置到自动部署

很多新手用宝塔面板建站后,每次更新代码都要手动上传FTP,既麻烦又容易漏文件。

其实宝塔自带了Git代码管理功能,配置好后只要push代码,服务器就自动拉取更新。

下面我用零基础都能看懂的方式带你走一遍。


前置准备



  • 一台已经安装好宝塔面板(Linux版)的服务器,能正常访问面板后台。

  • 一个远程Git仓库(推荐Gitee或GitHub),里面存着你的网站代码。

  • 用于验证的测试文件,比如在仓库里放一个test.txt

  • 宝塔面板已开放22端口(SSH),Webhook一般用8888或自定义端口,记得在安全组放行。


注意:如果你用的是云服务器(阿里云/腾讯云等),请在控制台安全组和宝塔“安全”页同时放行需要的端口。


分步操作


第一步:在宝塔中安装Git


登录宝塔面板 → 左侧软件商店 → 搜索“Git” → 找到“Git”或者“Git版本管理”(一般两个同名,点第一个) → 点击安装 → 选择极速安装,等待完成。


安装后不需要额外配置,宝塔会自动把Git加入系统PATH。


第二步:生成SSH密钥(并添加到远程仓库)


打开宝塔“终端”(左侧菜单 → 终端),输入以下命令生成密钥(一路回车即可):


ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com"

生成后查看公钥:


cat ~/.ssh/id_rsa.pub

复制输出的整段内容,然后登录你的Gitee/GitHub → 个人设置 → SSH公钥 → 添加公钥,标题随意,粘贴并保存。


第三步:在宝塔中添加Git仓库



  • 宝塔左侧菜单 → 代码仓库(如果没有这个菜单,先去软件商店安装“宝塔代码仓库”插件,免费)。

  • 点击“添加仓库”,填写:

  • 仓库名称:自己起名,例如myblog

  • 仓库地址:复制远程仓库的HTTPS或SSH链接(推荐SSH,例如git@gitee.com:你的名字/仓库名.git

  • 分支:默认mastermain,看你的仓库

  • 目标目录:填你的网站根目录,例如/www/wwwroot/你的站点

  • 账户信息:第一次用SSH,选择“密钥认证”,系统会自动使用你刚才生成的密钥

  • 点击“确定”,等待宝塔自动拉取代码。


如果拉取成功,目标目录下就会出现仓库的文件。

如果失败,看第四步。


第四步:配置Webhook实现代码自动拉取


回到宝塔“代码仓库”列表,找到刚添加的仓库,点击“设置” → 找到 Webhook 选项卡。



  • 复制生成的Webhook地址(类似 http://你的服务器IP:8888/xxxx

  • 登录远程仓库(Gitee/GitHub) → 进入仓库 → 管理 → WebHooks → 添加Webhook,粘贴上面的地址,勾选“Push”事件,保存。


以后每次你往这个仓库push代码,远程仓库就会通知宝塔自动拉取最新代码。


避坑指南



  1. SSH密钥不匹配:如果你原来服务器上已经有密钥,但没加到远程仓库,会报错Permission denied (publickey)。请重新生成并检查~/.ssh/id_rsa.pub内容是否已添加到远程仓库。

  2. 目标目录不为空:如果网站目录已经有文件(例如你之前手动上传过),宝塔拉取时会提示“目录非空”,可先清空目录或复制备份后再操作。

  3. Webhook超时无响应:检查宝塔安全组是否放行了Webhook使用的端口(默认8888),以及远程仓库能否访问服务器IP。如果是本地环境,内网穿透请用frp等。

  4. 权限问题:拉取后网站文件用户组可能不是www,导致宝塔无法正常读取。可以在宝塔“文件”中选择网站目录 → 权限 → 设置为www用户和组。


高频问题解答


问:我添加仓库后一直显示“正在拉取”或“失败”,怎么排查?

答:先点仓库右侧的“终端”图标,或者用SSH连接服务器,手动执行git clone 仓库地址测一下能否正常拉取。如果手动能拉取,宝塔一般也可以;如果手动失败,基本是密钥问题。


问:Webhook自动拉取后,网站需要重启吗?

答:大部分静态网站或动态语言(如PHP)不需要重启,文件更新即时生效。如果用了Nginx缓存或PHP Opcache,建议在Webhook请求里附带一个清除缓存的脚本(单独写个/webhook-clear-cache.php文件,用宝塔定时任务或Webhook直接调用)。


问:我有多台服务器,能同时用同一个Webhook吗?

答:不行,一个Webhook地址对应一台服务器上的一个仓库。多台需要各自配置独立的Webhook。


问:代码拉取后,之前手工修改的文件会丢失吗?

答:会的。自动拉取会强制覆盖目标目录(git pull)。如果你有本地修改,请先提交到远程仓库,或者使用.gitignore排除不想要覆盖的文件。


效果验证



  1. 登录远程仓库,在test.txt里随便加一句话并提交。

  2. 用浏览器访问你的网站(或直接打开/www/wwwroot/你的站点/test.txt),如果在1分钟内页面内容更新了,说明自动拉取成功。

  3. 或者观察宝塔“代码仓库”中的“拉取日志”,看到Success和最新的提交信息即正确。

  4. 查看Webhook记录:远程仓库设置页面 → WebHooks → 最近递送,显示200状态码表示成功。


遇到任何问题,优先看宝塔“日志”和远程仓库的Webhook递送记录,错误信息基本能定位原因。

如果你正在处理宝塔面板Git代码管理,建议先按本文步骤完整执行,再根据自己的环境做微调;

遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
服务器堡垒机搭建:手把手教你搭建服务器堡垒机:JumpSer
下一篇
零基础也能上手:WordPress集成AI写作全流程指南
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意