clone下来会有一个gitosis.conf的配置文件和一个keydir的目录。gitosis.conf用于配置用户的权限信息,keydir主要用户存放ssh公钥文件(一般以“用户名.pub”命名,gitosis.conf配置文件中需使用相同用户名),用于认证请求的客户端机器。
现在让需要授权的用户使用前面的方式各自在其自己的机器上生成相应的ssh公钥文件,管理员把他们分别按用户名命名好,复制到keydir目录下。
ubuntu:~$ cp /home/aaaaa/Desktop/zhangsan.pub /home/aaaaa/gitadmin/gitosis-admin/keydir/
ubuntu:~$ cp /home/aaaaa/Desktop/lisi.pub /home/aaaaa/gitadmin/gitosis-admin/keydir/
继续编辑gitosis.conf文件
[gitosis]
[group gitosis-admin]
####管理员组
members = charn@ubuntu
####管理员用户名,需要在keydir目录下找到相应的.pub文件,多个可用空格隔开(下同)
writable = gitosis-admin####可写的项目仓库名,多个可用空格隔开(下同)
[group testwrite]
####可写权限组
members = zhangsan####组用户
writable = mytestproject####可写的项目仓库名
[group
testread] ####只读权限组
members =lisi####组用户
readonly= mytestproject####只读项目仓库名
因为这些配置的修改只是在本地修改的,还需要推送到服务器中才能生效。
ubuntu:~/gitadmin/gitosis-admin$ git add .
ubuntu:~/gitadmin/gitosis-admin$ git commit -am "add a user permission"
ubuntu:~/gitadmin/gitosis-admin$ git push origin master
推送成功会显示下面提示信息
又是后新增的用户不能立即生效,这时候需要重新启动一下sshd服务
ubuntu:~/gitadmin/gitosis-admin$ sudo /etc/init.d/ssh restart
现在,服务端的git就已经安装和配置完成了,接下来就需要有权限的组成员在各自的机器上clone服务器上的相应
项目仓库进行相应的工作了。
五、客户端(windows)使用git
下载安装windows版本的git客户端软件,下载地址:
安装完成后右键菜单会出现几个git相关的菜单选项,我们主要使用其中的git
bash通过命令行来进行操作。
在本地新建一个目录,使用git初始化这个目录,然后再里面新建一个文本文件用于测试,最后关联到git服务器仓库
中的相关项目,最后上传本地版本到服务器。
$ mkdir testgit
$ cd testgit
$ git init
$ echo "this is a test text file,will push to server" > hello.txt
$ git add .
$ git commit -am "init a base version,add a first file for push to server"
$ git remote add origin git@serverip:mytestproject.git
$ git push origin master
这样服务端就创建好了一个mytestproject.git的仓库的基础版本了,现在其他组员只要从服务端进行clone就可以了。
window下面进入到需要克隆的本地目录下面右键选择git bash选项,输入
$ git clone git@serverip:mytestproject.git
就可以把项目clone到本地仓库了。
下面进行简单的修改和提交操作
$ cd mytestproject
$ echo "this is another text file created by other" >another.txt
$ git add .
$ git commit -am "add a another file by other"
$ git push origin master
最后推送到服务器成功会显示如下信息
GitHub 教程系列文章: