centos搭建git多人协作环境

1、安装git
2、创建用户 这里有个坑,一般不需创建新的用户组,直接使用项目所属用户组(一般为apache或者nginx)

adduser test -g apache

3、为用户名为test 的用户设置密码 

passwd test

4、创建仓库

cd /home/
mkdir gitroot
chmown test:apache gitroot
cd /gitroot
git init --bare project.git
chmown -R test:apache project.git
chmod 774 -R project.git
cd ../
chmod 750 gitroot

cd /home/gitroot/project.git
chmod -R 777 objects/

 5、安装Git客户端并生成公钥

5.1下载git客户端安装好后右键选择Git GUI Here->Help->Show SSH Key

就能得到私钥和公钥

打开Puttygen

load之前生成好的私钥

得到格式化后的私钥,点击保存私钥

配置小乌龟

5.2创建证书登录

切换到test目录(注意此时test目录的所属用户/用户组应该为:test:apache)

cd /home/test
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

然后将客户端的公钥上传到.ssh目录

cd .ssh
rz

将公钥添加进authorized_keys中

cat id_rsa.pub >> authorized_keys

6、克隆到本地
右键选择git克隆

现在我们能够正常的提交代码到服务器的git,但是还不能自动同步,我们还需要修改服务器的hooks/post-receive文件。具体post-receive内容

#!/bin/sh
unset GIT_DIR  
DeployPath="/www/web"
LogPath="/home/gitroot/project.git/hooks"

echo -e "\n=================  `date +"%Y-%m-%d %H:%M:%S"`  ===============\n" >> $LogPath/gitsync.log 2>&1
cd $DeployPath

#git stash  
#先拉取再合并
git pull  >> $LogPath/gitsync.log 2>&1

#强制与远程服务器同步,不与本地合并,只能通过提交的客户端提交的方式修改代码。
#git fetch --all  
#git reset --hard origin/master  

#time=`date`  
#echo "web server pull at webserver at time: $time."  
echo "================================================"  >> $LogPath/gitsync.log 2>&1

更改post-receive的所有者和权限

chmod -R 774 post-receive
chown test:apache post-receive

最后www下项目目录权限

chmod -R apache:apache /www/web
chmod -R 775 /www/web

 备注:创建新用户参考test创建过程

参考文章:https://segmentfault.com/a/1190000011234053

转载于:https://my.oschina.net/u/1184253/blog/2961218

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值