一、所需软件软件安装与配置
git-core是git版本控制核心软件,安装openssh-server和openssh-client是由于git需要通过ssh协议来在服务器与客户端之间传输文件
配置git账号名和邮箱
安装python的setuptools和gitosis,由于gitosis的安装需要依赖于python的一些工具,所以我们需要先安装python的setuptools。
二、创建git管理员账号
创建git用户
三、配置gitosis
在管理员机器生成秘钥,管理员机器可以是此台服务器别的用户,也可以是别的机器
把生成的id_rsa.pub拷到git账户下,比如 /home/git/,用这个key来初始化git仓库
注意:如果出现用户名git不在sudoers文件中,可以修改文件 /etc/sudoers,修改内容如下:
出现如上信息说明gitosis已经初始化成功, 会在/home/git/目录下生成repositories目录,这个就是放在git项目的目录,里面有gitosis-adgitosis.git的仓库,通过gitosis-admin.git仓库来管理一些配置文件的,如用户权限的管理。
添加权限
四、在服务器新建测试仓库
创建test仓库
五、使用gitosis管理用户操作项目的权限
在管理员电脑上做如下操作
clone后,gitosis-admin目录下:
keydir目录: 存放所有需要访问git服务器的用户的ssh公钥,各个用户按照前面提到的办法生成各自的ssh公钥文件后,把 所有人的ssh公钥文件按名字重新命名一下,然后拷贝到keydir目录下,例如,lisi.pub, zhangsan.pub , 若lisi为管理员机器 的ssh key
gitosis.conf文件,做相应的配置:
这个配置文件表达了如下含有:gitosis-admin组成员有ljz,该组对gitosis-admin仓库有读写权限;testgit组有 ljz lisi wanger三个成员,该组对test仓库有读写权限。目前这些配置文件的修改只是在本地,必须推送到远程的git服务器上才能真正生效
提交并push到Git服务器
六 初始化测试项目
现在服务器搭建完毕,并且有一个空的项目test在服务器上。接下来,需要测试一下,空仓库是不能clone的,所以需要某个有写权限的人初始化一个版本。在客户端执行