告别 FTP 时代 以前修改博客的前端代码或者自己的小项目,总是在本地改完,用 FTP 软件拖到服务器,极其繁琐,且版本经常搞混。 稍微研究了一下 Git 底层的钩子逻辑(Git Hooks),花半小时搞定了一套极简的自动化部署流水线。

原理与配置 在我的云服务器上,我没有选择庞大的 Jenkins,而是直接初始化了一个“裸仓库”(Bare Repository):

1git init --bare /home/git/myproject.git

然后跑到仓库的 hooks 目录下,新建了一个 post-receive 脚本。这个脚本会在我每次把代码 push 到服务器后自动触发。

核心同步脚本

1#!/bin/bash
2# 定义工作区目录(前端访问的 Nginx 目录)
3TARGET="/var/www/html/myproject"
4GIT_DIR="/home/git/myproject.git"
5
6echo "==== 正在接收推送并自动部署 ===="
7# 强制检出最新的代码到 Nginx 目录下
8git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f
9echo "==== 部署完成 ===="

赋予脚本执行权限 chmod +x post-receive

最后在本地电脑把服务器加为远程分支: git remote add prod root@我的IP:/home/git/myproject.git。 以后只要在本地敲下 git push prod master,服务器立刻自己更新页面。效率提升 1000%。