美文网首页
git hooks 实现自动部署

git hooks 实现自动部署

作者: MuLuo丶 | 来源:发表于2017-02-14 15:43 被阅读0次

    我们 需要两个目录

    1. git 服务器仓库目录 例如: /mnt/test.git
    2. web服务器目录 例如: /data/test

    Git Hooks

    我们使用的是服务端钩子
    post-receive,它位于/mnt/test.git/hooks

    当我们在本地执行push命令到git服务器的时候,服务器会自动触发post-receive钩子。
    

    配置post-receive

    先在 /data/test目录执行git clone /mnt/test.git
    post-receive 脚本的内容为

    #!/bin/sh
    cd /data/test || exit
    unset GIT_DIR #还原环境变量
    git pull origin master
    

    保存后赋予可执行权限

    chmod +x /mnt/test.git/hooks/post-receive
    

    如果不加 unset GIT_DIR #还原环境变量 就会报出 remote: fatal: not git respository:’.’ 错误

    修改web服务器根目录的权限

    因为执行拉取的时候是git用户所以要把web服务器根目录( /data/test) 的权限设定为git用户

    chown -R git:git /data/test
    

    如果没有做上述操作就会报:

    cannot open .git/FETCH_HEAD:Permission denied
    

    这样执行 git push 服务器的git仓库会更新,同时服务器上的网站服务器根目录 /data/test也会自动执行git pull 同步本地的推送

    Paste_Image.png

    完成!!!

    相关文章

      网友评论

          本文标题:git hooks 实现自动部署

          本文链接:https://www.haomeiwen.com/subject/eugxwttx.html