步骤 1:创建裸仓库和项目目录
创建裸仓库(如果尚未创建):
这里我们以 mall 为例
bash
git init --bare /home/git/mall.git
创建实际项目目录:
bash
sudo mkdir -p /var/www/html/mall
步骤 2:设置目录权限
确保 git 用户拥有实际项目目录的写入权限:
bash
sudo chown -R git:git /var/www/html/mall
步骤 3:配置 Git 钩子
创建 post-receive 钩子:
bash
nano /home/git/mall.git/hooks/post-receive
输入以下脚本:
bash
#!/bin/sh
git --work-tree=/var/www/html/mall --git-dir=/home/git/mall.git checkout -f
--work-tree:指定实际项目目录。
--git-dir:指定裸仓库路径。
checkout -f:强制检出最新代码,覆盖现有文件。
赋予脚本执行权限:
bash
chmod +x /home/git/mall.git/hooks/post-receive
步骤 4:本地仓库配置
添加远程仓库:
bash
git remote add origin git@your-server:/home/git/mall.git
推送代码并触发部署:
bash
git push origin master
验证部署
推送完成后,检查 /var/www/html/mall 目录是否包含最新代码。
如果遇到权限问题,尝试:
bash
sudo chown -R git:git /var/www/html/mall
附加说明
钩子扩展:如需在部署后执行其他操作(如安装依赖、重启服务),可在 post-receive 脚本中添加命令:
bash
cd /var/www/html/mall
npm install # 示例:安装 Node.js 依赖
忽略文件:将敏感文件(如配置文件)加入 .gitignore,避免被覆盖。
通过以上步骤,每次本地 git push 后,代码会自动部署到 /var/www/html/mall 目录。
本文为谷永庆原创文章,转载无需和我联系,但请注明来自luffy博客http://gyqtt.cn
Recent Comments