| 1. 安装git 
  
  emerge -av dev-util/git 
  2.安装gitosis 
  git环境默认是可以直接使用的,但需要为每个成员开ssh权限帐号,且各个仓库之间的交叉权限管理很麻烦,所以需要使用gitosis, 它无需为每个开发人员开设ssh帐号,安全方便。 
  
  emerge -av gitosis 
  如果提示这个包被mask了,需要编辑/etc/portage/package.keywords文件,在里面加入 
  
  dev-util/gitosis ~amd64 
  3.生成公钥 
  在客户端使用 
  
  ssh-keygen -t rsa 
  来生成ssh的key,注意你的主机名需要是全部英文字符,不能有下划线或者.之类的特殊字符,否则后面在服务端生成版本库的时候会报错。 
  4.上传公钥 
  从客户端把刚刚生成的公钥上传到服务器上。 
  
  scp ~/.ssh/id_rsa.pub USER@YOUR_SERVER:/tmp 
  5.在服务端生成管理库 
  
  sudo -H -u git gitosis-init < /tmp/id_rsa.pub 
  成功的话,你将看到类似下面的提示: 
  Initialized empty Git repository in /var/spool/gitosis/repositories/gitosis-admin.git/ 
  Reinitialized existing Git repository in /var/spool/gitosis/repositories/gitosis-admin.git/ 
  设置post-update脚本权限 
  
  chmod 755 /var/spool/gitosis/repositories/gitosis-admin.git/hooks/post-update 
  至此,服务端配置已经完成。 
  6.同步配置文件 
  gitosis本身就是一个git库,所以管理起来非常方便。下面在客户端同步gitosis管理库 
  git clone git@YOUR_SERVER:gitosis-admin.git 
  cd gitosis-admin 
  你将看到以下文件 
  -rw-r--r-- 1 garry garry 104 Nov 13 05:43 gitosis.conf 
  drwxr-xr-x 3 garry garry 102 Nov 13 05:43 keydir/ 
  gitosis.conf是gitosis的配置文件,用于配置用户和权限 
  keydir/是所有组成员的公钥 
  我们可以在本地修改配置更改权限,然后push到服务端后,服务器端就立刻生效 
  7.创建新的repositories 
  打开gitosis.conf文件,你将看到 
  [group gitosis-admin] 
  writable = gitosis-admin 
  members = elton@macbook 
  这个是管理组的权限,members中的用户名就是刚才上传的公钥里面的用户名。 
  在这个文件后面加入: 
  [group myteam] 
  members = elton@macbook 
  writable = free_monkey 
  这里你定义了一个叫myteam的组,授予elton@macbook这个用户写“free_monkey”这个repo的权限 
  git commit -a -m "Allow elton write access to free_monkey" 
  git push 
  上面的操作就更新了服务端的权限。 
  下面就开始创建free_monkey的repo 
  mkdir free_monkey 
  cd free_monkey 
  git init 
  创建 .gitignore 文件,用于忽略某些不需要进行代码管理的内容,如rails的应用可能如下: 
  .DS_Store 
  log/*.log 
  tmp/**/* 
  config/database.yml 
  db/*.sqlite3 
  提交代码: 
  git remote add origin git@YOUR_SERVER_HOSTNAME:free_monkey.git 
  git add . 
  git commit -a -m "initial import" 
  git push origin master:refs/heads/master 
  接下来,可以增加成员的公钥到系统中了 
  cd gitosis-admin 
  cp ~/alice.pub keydir/ 
  cp ~/bob.pub keydir/ 
  git add keydir/alice.pub keydir/bob.pub 
  修改gitosis.conf 
  [group myteam] 
  - members = jdoe 
  + members = jdoe alice bob 
writable = free_monkey 
提交修改: 
git commit -a -m "Granted Alice and Bob commit rights to FreeMonkey" 
git push 
其它成员就可以获取代码了 
git clone git@YOUR_SERVER:free_monkey.git |