使用gitosis来配置管理git服务器端
2010-10-08 21:06
393 查看
使用gitosis来配置管理git服务器端
转载:http://blog.prosight.me/index.php/2009/07/2711. 安装git
emerge -av dev-util/git2.安装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
相关文章推荐
- Centos下使用gitosis配置管理git服务端(转载)
- 环境安装系列 - Linux上使用Gitosis管理git服务
- 阿里云下安装GIT和使用GITOSIS进行权限管理
- fedora10 使用Git管理版本配置
- ubuntu11.10搭建git服务器, 使用gitosis管理git服务器
- 在MAC下使用gitosis来配置git服务
- Git版本管理:Windows下Git配置与使用指南 Gitlab
- Git服务器的Gitosis安装配置及gitignore的使用方法
- 在Linux下使用gitosis配置安装Git服务器
- idea 使用git管理项目, window配置和第一次上传项目到码云
- 使用gitosis和git进行代码权限管理
- 使用git管理服务器开发环境配置
- Git版本管理:Windows下Git配置与使用指南
- Git版本管理:Windows下Git配置与使用指南
- 使用 git 进行项目管理(只管理代码,不管理项目配置)
- 使用git管理puppet运行环境与配置版本
- 搭建git服务器及配置gitosis管理用户权限
- git版本管理之git-ssh 配置和使用
- 关于window下使用git管理php源码的环境配置问题
- 在Linux下使用gitosis配置安装Git服务器