搭建Git服务器环境----Git hooks代码自动部署

引言:自己想搭一套git的服务端环境,不想用github码云等。经多方资料整合,实验总结,以下是亲测有效的方式。可用于公司日常开发

一.搭建Git环境

① 安装 Git

Linux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git

服务器端:

#yum install -y git

安装完后,查看 Git 版本

[root@localhost ~]# git --version
git version 1.7.1

② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码

[root@localhost home]# id git
id: git:无此用户

[root@localhost home]# groupadd git
[root@localhost home]# useradd git 
[root@localhost home]# passwd git

 注:新增用户,useradd -g git 新用户名(新用户也就是linux的用户)

③ 服务器端创建 Git 仓库

设置 /opt/sample.git 为 Git 仓库

然后把 Git 仓库的 owner 修改为 git

[root@localhost home]# mkdir -p /opt/sample.git
[root@localhost home]# git init --bare /opt/sample.git
Initialized empty Git repository in /opt/sample.git

[root@localhost home]# cd /opt
[root@localhost git]# chown -R git:git sample.git/

 至此git搭建完毕(没有使用RAS认证) 此搭建步骤参考  https://www.cnblogs.com/dee0912/p/5815267.html

二.利用git hook自动进行部署代码同步

1.创建项目目录

   mkdir /data/sample

2.克隆远程仓库

  git clone /opt/sample.git

  

3.在仓库sample.git hooks目录中,创建post-receive文件,内容如下

#!/bin/sh
DEPLOY_PATH=/data/sample
date | tee log.txt
unset GIT_DIR #这条命令很重要
cd $DEPLOY_PATH
git reset --hard
git pull | tee log.txt # tee记录脚本日志
#chown www:www -R $DEPLOY_PATH

注意:1.若代码不能自动同步,多半是权限问题 

解决办法:每次脚本执行最后,重新chown或chmod项目目录

           2.若客户端push失败

解决办法:每次脚本执行最后,重新chmod sample.git/objects/ 权限 

客户端:

   下载 Git for Windows,地址:https://git-for-windows.github.io/

   安装完之后,可以使用 Git Bash 作为命令行客户端。 

   安装完之后,查看 Git 版本

$ git --version
git version 2.8.4.windows.1

  克隆远程仓库 git@Ip:/opt/sample.git(注意 此处git为你的git用户名)
  提交代码测试

  注意:push失败、部署失败注意权限

sudo 以管理员身份运行脚本--tee方式记录脚本日志
 

说明:当运行脚本时,常遇到权限不足等,可以用以上方法来以管理员权限运行

1.编辑/etc/sudoers (注意,这里使用 visudo 而不是 vi 来设置。

2.visudo或 给与/etc/sudoers写权限 vi方式打开

3.%wheel        ALL=(ALL)       ALL  ##这行默认是注释掉的。如果取消注释,则群组为 wheel 的人就可以进行root 的身份工作!这个 wheel 是系统预设的 group!因此,如果想要让这部主机里头的一般身份使用者具有sudo 的使用权限,那么就必需将该 user 放入支持 wheel 这个群组里头!

4.git                 ALL=(ALL)       ALL  

 

转载于:https://www.cnblogs.com/xiaommvik/p/8556985.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值