git实现自动化部署,同时push到多个远程仓库-创新互联

方法一、

创新互联建站主要从事网站设计制作、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务丹寨,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

1、先在服务器创建裸仓库  git init --bare  裸仓库是可以被正常 clone 和 push 更新的, 裸仓库不包含工作区,所以并不会存在在裸仓库上直接提交变更的情况

git init --bare test.git

2、配置hooks 钩子

 cd test/test.git/hooks/

  vi post-receive       

  #!/bin/sh

  git --work-tree=/root/test  --git-dir=/root/test/test.git checkout -f     #/root/test是代码目录,/root/test/test.git 是裸仓库

3、配置本地git conf

vi conf

[remote "web"]

    url = git@git.oschina.net/mytest.git    #远程仓库

    url = 账号@ip:/root/test/test.git         #服务器裸仓库

4、测试

git push web master

方法二、

1、配置码云

配置url和密码  (http://127.0.0.1/git_hooks,密码:123456)

2、配置服务器端

@login.route('/git_hooks', methods=['POST'])
def git_payload():
    data = request.get_json()
    password = '123456'
    if data.get('password', None) == password:
        if data.get('hook_name') == "push_hooks":
            try:
                cmd_output = subprocess.Popen(
                    [". /home/git_sh.sh"], shell=True)
                return jsonify({'msg': str(cmd_output)})
            except subprocess.CalledProcessError as error:
                return jsonify({'msg': str(error.output)})
        else:
            return jsonify('invalid hooks')
    else:
        return jsonify('invalid hash')

3、编辑git_sh.sh脚本

cd /home/backend/www/aw

git pull origin master

4、git实现自动化部署,同时push到多个远程仓库

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:git实现自动化部署,同时push到多个远程仓库-创新互联
文章出自:http://azwzsj.com/article/dhhipg.html