| 
 
| 假设CentOS6.5的IP地址为192.168.0.10,centos上有一个普通用户skefer以及root超级用户 
 Win7的IP地址为192.168.0.20, 用户名为 tangpeng
 
 
 
 
 
 1.Centos6.5上登录用户为skefer
 
 1.执行以下命令安装git环境
 
 [skefer@localhost ~]$ sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel git
 
 2. 输入git --version 查看git是否安装好
 
 [skefer@localhost ~]$ git --version
 
 #如果安装好的话,应该输出 git version 1.7.1等信息
 
 
 
 3.创建Git专用用户组和用户名
 
 #切换到root模式
 
 [skefer@localhost ~]$ su root
 
 #添加git组
 
 [root@localhost ~]# groupadd gitgroup
 
 #创建git用户
 
 #-d /git的意思是将git用户的主目录指定为/git,-g gitgroup的意思是设置gitgroup为git这个用户所在用户组
 
 #如果不想修改默认主目录,可以这样写 useradd -d /home/git -g gitgroup -m git
 
 #创建git主目录
 
 [root@localhost ~]# mkdir /git
 
 #创建git用户
 
 [root@localhost ~]# useradd -d /git -g gitgroup -m git    #为git创建密码
 
 [root@localhost ~]# passwd git
 
 #修改权git用户主目录权限
 
 [root@localhost ~]# chown - R git:gitgroup /git 4.创建ssh密钥
 
 [git@localhost ~]$ ssh-keygen -t rsa
 
 # 默认情况下,公钥和私钥会保存在~/.ssh目录下,有这些文件:id_rsa  id_rsa.pub  known_hosts
 
 #将公钥拷贝到/tmp文件夹下
 
 [git@localhost ~]$ cp .ssh/id_rsa.pub /tmp/git.pub
 
 4. 安装gitosis管理工具
 
 #安装gitosis运行环境
 
 [root@localhost ~]#  yum install python python-setuptools
 
 #下载gitosis并安装
 
 [root@localhost ~]#  cd /tmp
 
 [root@localhost ~]#  git clone git://github.com/res0nat0r/gitosis.git
 
 [root@localhost ~]#  cd gitosis
 
 [root@localhost ~]#  python setup.py install
 
 #显示Finished processing dependencies for gitosis==0.2即表示成功
 
 #切换到git用户
 
 [root@localhost ~]#  su git
 
 [git@localhost root]$  cd ~
 
 #初始化gitosis
 
 [git@localhost ~]$ gitosis-init < /tmp/git.pub
 
 [git@localhost ~]$ chmod 755 /git/repositories/gitosis-admin.git/hooks/post-update
 
 #删除authorized_keys中除了gitosis生成key之外的key
 
 [git@localhost ~]$ vi ~/.ssh/authorized_keys
 
 #如果有###文字,这个是gitosis生成的,不要去删除。删掉其他的sshkey就行了,不然会造成gitosis无法使用
 
 
 
 5.上传客户端的sshkey公共密钥
 
 在win7上安装mysigit,tortoisGIT,安装完毕后,运行附件->Puttygen,生成公钥和私钥,其中私钥保存在本地,将公钥保存为tangpeng.pub
 
 运行git-bash,定位到pub文件所在位置,然后使用scp tangpeng.pub skefer@192.168.0.10:/tmp这个命令,将windows客户端的公钥传到服务器上。(注意,我有skefer用户的密码,可以使用这个账户上传windows客户端的公钥。如果有root的密码,也可以使用root账户上传)
 
 
 
 6.配置服务器上的gitosis
 
 #配置gitosis
 
 [git@localhost ~]$ git clone git@192.168.0.10:gitosis-admin.git
 
 [git@localhost ~]$ cd gitosis-admin/
 
 #添加windows客户端的公钥
 
 [git@localhost gitosis-admin]$ cp /tmp/tangpeng.pub keydir/
 
 
 
 7.添加GIT项目
 
 [git@localhost gitosis-admin]$ vi gitosis.conf
 
 # [gitosis]
 
 # [group gitosis-admin]    # writable = gitosis-admin
 
 # members = a@server1
 
 # [group developers]
 
 # writable = helloworld
 
 # members = tangpeng
 
 #保存并同步项目
 
 [git@localhost gitosis-admin]$ git add.
 
 [git@localhost gitosis-admin]$ git commit -am &quot;添加helloworld项目,授权该项目为tangpeng使用&quot;
 
 [git@localhost gitosis-admin]$ git remote add origin git@192.168.0.10/gitosis-admin.git
 
 [git@localhost gitosis-admin]$ git push origin master
 
 
 
 8.在win7客户端上,创建项目并同步到服务器
 
 创建文件夹helloworld
 
 鼠标右击->Git在这里创建版本库->确定
 
 鼠标右击->Git同步
 
 在远端url处,点击管理,增加远端git服务器位置
 
 进入后,远端填写&quot;origin&quot;,URL填写&quot;git@192.168.0.10:helloworld.git&quot;,putty密钥填写之前win7上使用Puttygen生成的私钥
 
 点击保存->确定
 
 点击推送,然后项目就能推送到远端服务器了。
 
 
 
 剩下是git的具体使用方法,可以使用gitbash命令行,也可以使用totoisegit客户端,各有优势。
 
 
 
 
 
 
 
 参考**:
 
 http://wiki.ubuntu.org.cn/Git%E6%9C%8D%E5%8A%A1%E5%99%A8Gitosis%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AE
 | 
 |