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 [email protected]:/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用户的过程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章