git搭建教程之配置多帐号协作开发仓库

git搭建教程之配置多帐号协作开发仓库

目标:linux同组多帐号使用git协作开发
环境:centos7、sshd、git

重点:

1、对于新仓库使用git init --bare --shared=group 使同组系统用户共享git仓库权限。
2、对于已存在仓库使用git config core.sharedRepository true设置共享。true表示group共享。


同组成员共享仓库读写权限成功演示:


1、新建一个git_data系统组作为git成员的组  

groupadd git_data

2、添加不同成员的账号,分配到git_data组并指定登录shell为git-shell禁止直接登录系统

useradd -s /usr/bin/git-shell -g git_data git_test1
useradd -s /usr/bin/git-shell -g git_data git_test2

3、为不同的账号分配密码

passwd git_test1
passwd git_test2

4、初始化一个组共享的裸仓库

git init --bare --shared=group /data/git/git-test.git

把仓库所属组改为git开发的组

chown -R git:git_data git-test.git 

5、协作开发
(1)成员使用git-test1账号克隆仓库并新建提交一个test.txt文件

(2)另一个成员使用git-test2账号克隆仓库并修改git-test1提交的test.txt文件


(3)git push一切正常,同一组成员可以协助开发

一个失败的示例,未设置共享同组成员提交失败

多帐号提交时提交时发现权限不足

对比2个仓库的objects目录发现没设置共享的仓库默认创建的文件夹为755,同组成员无法在目录内进行写操作,而设置共享--shared=group后提交创建的目录权限为775,同组共享目录读写操作

解决方法为仓库设置同组共享

git config core.sharedRepository true


因为设置分享后新的提交操作才会生效,需要把仓库之前的目录手动改为组共享,完成多帐号同组共享git仓库

猜你喜欢

转载自blog.csdn.net/lwtcoding/article/details/105242330