1.在服务器上安装git及做些操作

执行命令:sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

首先安装setuptools

  1. wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
  2. tar zxvf setuptools-0.6c11.tar.gz
  3. cd setuptools-0.6c11
  4. python setup.py build
  5. python setup.py install

在服务器(CentOs)上首先安装git软件

  • yum insatll git
增加软连接
```
sudo ln -s /usr/local/git/bin/* /usr/bin/

git --version   #如果能显示版本号,即表示成功`
3.在服务器安装gitosis
```
sudo yum install python python-setuptools

cd /usr/local/src

git clone git://github.com/res0nat0r/gitosis.git

cd gitosis

python setup.py install  

#显示Finished processing dependencies for gitosis==0.2即表示成功
4.在开发机上,生产密钥并上传到服务器上
 安装git,从程序目录打开 "Git Bash" 
ssh-keygen -t rsa   #一路回车,不需要设置密码
 在C:\Documents and Settings\Administrator\下产生两个文件:id_rsa和id_rsa.pub
#上传公钥到服务器(默认SSH端口22)
scp ~/.ssh/id_rsa.pub yourlocalname@your ip:/tmp
或编辑`/etc/hosts`文件,在`/etc/hosts`文件里添加如下文本:
```
# local git server
your ip zgit
```
然后再上传自己的公钥到服务器
```
scp ~/.ssh/id_rsa.pub yourlocalname@zgit:/tmp/
# 登录到git服务器
ls /tmp/id_rsa.pub  #显示已经上传的密钥
5.服务器上生成git用户,使用git用户并初始化`gitosis`

```
# 创建git版本管理用户 git
sudo useradd -c 'git version manage' -m -d /home/git -s bin/bash  git

# 更改git用户的密码
sudo passwd git

# su 到git用户
su - git
gitosis-init < /tmp/id_rsa.pub

#显示以下信息即表示成功
#Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
#Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

#删除密钥
rm -rf /tmp/id_rsa.pub
6.在个人开发机上导出项目管理
```
mkdir -p /repo
cd /repo
git clone git@zgit:gitosis-admin.git
若果上方路径不对,提示库不存在,则输入全路径:
git clone git@yourIp:/home/git/resposities/gitosis-admin.git就行了
```

7.在个人开发机增加及设置管理项目
```
cd /repo/gitosis-admin

# 查看git服务器已经上传密钥
ls keydir  

cat keydir/ltl@jackliu-ThinkPad.pub  

#ltl@jackliu-ThinkPad.pub为已经上传的开发机生成的公密

#显示密钥 最后的字符串为 密钥用户名 这里为 ltl@jackliu-ThinkPad
vim gitosis.conf

#在文件尾增加以下内容

[group test-git]            # 具有写权限的组名称
writable = test-git         # 该组可写的项目名称
members = ltl@jackliu-ThinkPad  guangyun.ni@yeepay.com     #该组的成员(密钥用户名) 多个用户协同开发时,以空格分隔

# 如果要增加只读的组 参考如下
# [group test-git-readnoly]          # 具有都权限的组名称
# readonly = test-git                # 该组只读的项目名称
# members = ltl@jackliu-ThinkPad     # 该组的成员


#提交修改
git add .
git commit -a -m "add test-git repo"
git push

```

8.在个人开发机上初始,增加及使用项目test-git

```
cd ~/repo  

mkdir test-git   

cd test-git  

git init  

touch readme  

git add .   

git commit -a -m "init test-git"  

git remote add origin git@zgit:test-git.git  

git push origin master  

```

9.增加协同开发者的公钥key到git服务器  
 
 - 执行`cd repo/gitosis-admin/keydir`切换目录
 
 - 把协同开发者的id_rsa.pub 文件里的数据 拷贝到 对应的开发者的`密钥用户名.pub`文件。如把密钥用户名 guangyun.ni@yeepay.com 的 id_rsa.pub 文件中文本 粘贴到 guangyun.ni@yeepay.com.pub 文件里,并保存

 - 然后将添加数据后的目录更新到git服务器
 
 ```
 
 git add .  
 git commit -am "add guangyun.ni@yeepay.com.pub file"  
 git push origin master  
 
 ```
 

 
 本文档参考:
 [CentOS git搭建参考1][2],
 [CentOs上搭建git服务器][3]
 


  [1]: http://code.google.com/p/git-core
  [2]: http://blog.sina.com.cn/s/blog_86fe5b440101975o.html
  [3]: http://www.cnblogs.com/nasa/archive/2012/05/31/2528901.htmljackliu@jackliu-ThinkPad:~/workspace/recipes/doc/linux$


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐