zoukankan      html  css  js  c++  java
  • Git hook实现自动部署

    Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用。其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 bash 脚本。

    在远程服务器上,首先新建一个Git库,进入目录/root

    cd /root

    mkdir testRepo

    cd testRepo

    git init --bare

    在远程服务器再初始化一个普通的本地Git仓库,这个本地仓库的作用是拉取远程的仓库

    cd /var/www/                   #进入远程项目根目录

    git clone /root/testRepo    #复制自己的上述的git库

    编辑bash,编辑给自己的Git添加一个hook(可以理解为一个回调)

    cd /root/testRepo/hooks

    vim post-receive   #如果没有这个文件,新建一个

    编辑这个文件

    #!/bin/sh

    unset GIT_DIR

    cd /var/www/testRepo

    git add . -A && git stash

    git pull origin master

     记得为添加可执行的权限

    chmod +x pose-receive

    在你的本地仓库(本机)

    建立与远程Git仓库的链接

    git remote add test(可以根据需要命令,是远程仓库的一个标识) 主机用户@服务器的IP:/root/testRepo

    建立链接成功以后,本地开发的修改可以通过以下的方式推送到远程服务器上:

    git push test master   

    当远程服务器的Git仓库收到push过来的改变的代码时,会自动回调hook,执行/root/testRepo/hooks/post-receive里面的脚本

    git pull origin master

    因为我们远程部署的项目是从/root/testRepo 直接clone的,所以会从/root/testRepo拉取最新的代码,从而更新我们服务器部署的项目/var/www/testRepo。

  • 相关阅读:
    解释器模式
    命令模式
    责任链模式
    代理模式
    享元模式
    外观模式
    装饰器模式
    组合模式
    过滤器模式
    js广告浮动
  • 原文地址:https://www.cnblogs.com/feiyafeiblog/p/6838271.html
Copyright © 2011-2022 走看看