centos7.4新建git server + hook 同步代码

我买了一台阿里云服务器,平时做做测试什么的,需要代码同步。

1.首先安装的git.x86_64

yum install git.x86_64

2.创建用户

groupadd git

useradd -g git -s /usr/bin/git-shell -M git

指定组和使用的shell和名称

3.建立一个空的git仓库

cd /home/git   //没有就新建

git init --bare test.git

4.加权限

chown -R git:git test.git

5.git-shell-commond不能使用的问题

cp /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands /home/git -R
chown git:developers /home/git/git-shell-commands/ -R
chmod +x /home/git/git-shell-commands/help
chmod +x /home/git/git-shell-commands/list

6.可以远程拉取了

git clone git@127.0.0.1:/home/git/test.git

这样需要输入密码,可以passwd git设置密码,然后使用密码拉取

7.不适用密码,使用ssh拉取

在git用户目录,也就是/home/git下新建了/home/git/.ssh/authorized_keys文件,将想要拉取代码的电脑里的ssh公钥新起一行加入刚才服务器新建的文件里面,一般在当前用户~/.ssh/id_rsa.pub。

7.hook使用

我之前新建git用户,设置只能使用git-shell,结果hook怎么都不成功。尝试了好多次,方法如下:

第一步生成git用户的ssh秘钥:

vim /etc/passwd,修改git用户shell为/bin/bash,最后操作完的时候需要改回/usr/bin/git-shell,为了安全。

切换用户:su git

生成ssh秘钥:ssh-keygen,选择git的用户目录,默认即可。

此时换回root用户,修改git用户的操作shell。

将git用户的id_rsa.pub拷贝到git的authorized_keys中,

cat /home/git/.ssh/id_rsa_pub

拷贝

vim /home/git/.ssh/authorized_keys

粘贴

第二步:设置代码权限

test目录是我提前拉取的代码目录,也可以脚本里面编写

拉取代码:git clone git@ip:/home/git/test.git /opt/www/test

chown -R git:git /opt/www/test

第三步编写hook脚本:

cd /home/git/test.git/hook

cp post-update.sample post-update

chmod a+x post-update

vim post-update

#!/bin/bash

unset GIT_DIR
GIT_DIR=/opt/www/test

cd $GIT_DIR
git pull

 

 

下面是新建ftp用户的过程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值