假设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 |