使用 Git hook 实现自动化部署

2018/08/23 工具 git hook 自动化部署
  本文为「原创」内容,如需转载请注明出处!             
本文共 785 字,需 9 分钟阅读

背景

传统的部署方式一般通过 FTP 将生成的文件传入到服务器然后进行手动部署操作,该方式繁琐且没啥技术含量。本文通过一个简单的 git hook 的使用旨在说明自动化部署的原理

方法

  1. 用户 push 源码到服务器
  2. 服务器监听到 push 动作然后执行 hook 里面定义的脚本
  3. 脚本让服务文件夹拉取最新的代码,然后执行部署动作

hook-deploy

教程

  1. 在服务器上建立一个 git repository
     cd /home/git/blog/
     git init --bare
    
  2. www文件夹关联到 git repostory
     cd /home/srv/www/
     git clone /home/git/blog/
    
  3. 编写 hook 脚本
     cd /home/git/blog/hooks/
     vim ./post-receive
     chmod +x ./post-receive
    

    post-receive 内容

     #!/bin/sh
     unset GIT_DIR # 这句十分重要,去除掉 git 的默认路径
     DEPLOY_PATH=/home/srv/www/
     cd $DEPLOY_PATH
     #你的部署脚本
     git fetch --all
     git reset --hard origin/master
    
  4. 本地添加远程仓库
     git remote add origin ssh://git@some.test.com:/home/git/blog
    

备注

  1. 本例只是一个简单的通过每次 git push 然后www文件夹拉取最新代码
  2. 你可以参考 git hook 的相关信息,通过截取 commit message 来确定什么时候才执行部署操作
  3. 你要有 ssh 登录权限才能执行 push 操作

搜索

    文章目录