本篇文章记录了自己搭建GIT服务器的过程,git服务器搭建在linux上及windows客户端连接
环境介绍:
服务器:linux (redhat)
客户端:windows (win7)
git官网:http://git-scm.com/
GIT最新源码下载地址:https://github.com/git/git
gitbub上提供了最新git zip包,将下载下来的压缩包解压出来
$ unzip git-master.zip
解压出来后,目录下会有一个INSTALL文件(https://github.com/git/git/blob/master/INSTALL),里面介绍了源码安装的详细步骤,下面我们就按照INSTALL里的说明来进行git的安装
$ make configure
$ ./configure
$ make all doc //如果不安装文档的话,可以只使用make命令,不用跟后面的参数
$ make install install-doc install-html //如果不安装文档可以只使用make install命令,不用跟后面的参数
添加GIT用户(客户端连接,都会以此用户的身份进行操作)
$ adduser git ; 用户名可以自己定义,一般都用git见明之义
$ passwd git ; 设置用户密码
$ git clone https://github.com/tv42/gitosis.git
进入gitosis目录,执行安装:
$ cd gitosis
$ python setup.py install
shell> wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
$ useradd git
$ ssh-keygen
$ ssh-keygen
命令行会提示如下,
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/benben/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
为了防止我们的私钥被盗用的可能,上面提示我们为私钥输入使用密码,如果我们设置上密码后,以后每次我们要push或pull远程库的时候都会提示我们输入密码,不过再此我们可以不用输入密码,直接回车就可以。一路回车后,我们的密钥和公钥就会生成了,命令提示符下会输出它们保存的目录,其中id_rsa为私钥,id_rsa.pub为公钥。
$ sudo su - git #切换到git用户身份下,不然执行下面的初始化后客户端管理员是无法通过密钥来访问的,权限的问题
$ gitosis-init < /tmp/id_rsa.pub
$ cd ~ #回到git用户的宿主目录
$ ls #查看目录文件
gitosis repositories #自动生成两个目录
chmod a+x ~git/repositories/gitosis-admin.git/hooks/post-update
$ git clone git@server:gitosis-admin.git
$ cd gitosis-admin/
克隆完成后,进入gitosis-admin目录下,看有哪些文件
.git (隐藏的目录, 如果在windows下看不见,请百度“windows下如何显示隐藏的文件”)
keydir (目录,存放用户的公钥,刚开始只有一个管理员公钥)
gitosis.conf (授权文件)
授权文件gitosis.conf,初始内容:
1 [gitosis]
2
3 [group gitosis-admin]
4 writable = gitosis-admin
5 members = Administrator@PC201506151115
$ su git
$ cd ~/respositories
$ mkdir test.git
$ cd test.git
$ git init --bare
1 [gitosis]
2
3 [group gitosis-admin]
4 writable = gitosis-admin
5 members = Administrator@PC20150615111
6
7 [group common]
8 writable = test
9 members = 用户1 用户2
$ git add .
$ git commit -m "增加新成员xxx,yyy对test测试库的访问权限"
$ git push