git钩子自动更新服务器代码
【摘要】 git钩子自动更新服务器代码 服务器端:创建一个裸仓库pwd # /home/www/git init --bare project_xxx.gitcd project_xxx.git/hooks/cp post-update.sample post-update创建一个普通的仓库 ,这一步就是为了明确表示一下仓库其实是有两个的,这个仓库才是代码的存储位置pwd # /home/...
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 # 服务端创建的裸仓库的地址
然后就可以在客户端进行操作了
参考链接:时光不写博客
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)