git钩子自动更新服务器代码

git钩子自动更新服务器代码

服务器端:

  • 创建一个裸仓库

    pwd   # /home/www/
    git init --bare  project_xxx.git
    cd project_xxx.git/hooks/
    cp post-update.sample post-update
    
  • 创建一个普通的仓库 ,这一步就是为了明确表示一下仓库其实是有两个的,这个仓库才是代码的存储位置

    pwd   # /home/www/
    mkdir blog
    
  • 更改post-update中的内容为:

    #!/bin/sh
    unset GIT_DIR 
    DIR_ONE=/home/www/blog/  # 更新后的代码会存储在这个文件夹中,文件夹需要存在 
    cd $DIR_ONE
    git init
    git remote add gitee https://gitee.com/project.git  # 码云/GitHub代码仓库地址,如果不需要推到远程仓库,可以把这一步和最后的push去掉
    git remote add origin /home/www/project_xxx.git  # 路径指向裸仓库
    git reset --hard   # git clean -df
    git pull origin master
    git push gitee master # 把代码推到远程仓库
    # 下面这两句是为了自动重启项目的,静态页面不需要; 先查到并杀死进程
    sudo kill -9 $(ps -ef|grep project_name |gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
    # 然后再次启动(这里是用Django的uwsgi启动作为例子)
    nohup uwsgi --ini project_uwsgi.ini > ../log/bs_out.log 2>&1 &
    
  • 配置git,因为用的是服务器,没有配置公钥,直接偷懒配置一下git的全局配置,不需要推到远程仓库可以省略这一步

    git config --global user.name "name"
    git config --global user.email "email"
    git config --global credential.helper store
    

    然后使用git推一次代码,记录一下远程仓库的密码,脚本在推代码的时候就不需要再验证了

客户端:

  • 进入项目目录
    git init
    git remote add origin 服务器地址:/home/project_xxx.git   # 服务端创建的裸仓库的地址
    

然后就可以在客户端进行操作了

参考:
git book :
https://git-scm.com/book/zh/v2/服务器上的-Git-在服务器上搭建-Git
https://aotu.io/notes/2017/04/10/githooks/index.html

本文链接:时光不写博客

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光不写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值