git自动部署代码

git自动部署代码
服务器创建裸仓库:

# git init --bare test.com.git
# ls test.com.git
# branches  config  description  HEAD  hooks  index  info  objects  refs

配置自动部署代码的脚本:

#vi hooks/post-receive
#!/bin/bash
while read oldrev newrev ref
do
    if [[ $ref =~ .*/master$ ]];
    then
        echo "Master ref received.  Deploying master branch to production..."
        sudo git --work-tree=/data/gitroot/test.com --git-dir=/data/git/test.com.git checkout -f
    else
        echo "Ref $ref successfully received.  Doing nothing: only the master branch may be deployed on this server."
    fi
    sudo chown -R www.www /data/gitroot/test.com/
done
# 这里采用sudo 是为了解决git代码目录的权限问题。
# 链接:https://www.digitalocean.com/community/tutorials/how-to-use-git-hooks-to-automate-development-and-deployment-tasks

权限问题:git:git nginx:www
1、git都是以git用户运行,checkout输出代码也是git用户,
2、nginx运行是以www用户运行,

解决办法:git拥有高级权限,且sudo 无需输入密码

注释如下行:
#Defaults    requiretty
添加如下行:
git     ALL=(ALL)       NOPASSWD:ALL

把git用户添加到www用户组
usermod -a -G www git
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,065评论 19 139
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,894评论 9 163
  • 短线龙头:市值小 容易炒作做标杆。 注意:小市值能否炒得动,关键看主帅是否炒得动。—— 盘子小,涨幅最大,对于散户...
    股市故事阅读 324评论 0 0
  • 在我的青春岁月里,最难的就是放下你。 在高中的三年里,贯穿我整个世界的是你的名字。那么深刻。那么心痛,又那么难以放...
    初晨是我故意忘记你阅读 365评论 0 0
  • 20:43 2015/1/11 我们从很远的地方走到此地,寻到一个隐蔽入口的包子铺,由于正餐时间未到的缘故而人数稀...
    枝楼阅读 423评论 0 1

友情链接更多精彩内容