gitolite用作项目管理

以前因为公司人少,事情基本都可控,所以仅仅用git作一下代码管理。参照的是廖雪峰的blog。

但是,现在因为开发人员逐渐增多,单纯使用git来管理代码,而没有相应别的工具来做权限的约束以及人员的管理,感觉已经有点吃力。

以前就听说gitolite,但是因为人比较懒,也一直没去看。这次索性就研究gitolite,用它来做管理(其实吧,就仅仅需要对开发人员做一下权限的约束而已)。

稍微花了点时间,找到了几篇文章做参考。看了下其中的过程。开始并不明白有些步骤具体目的是要干嘛。后来将我自己的测试服务器上多弄几次后,基本就知道每一步的目的。

先写过程吧,文末贴上参考文章。

1、添加git用户和分组,并切换到git分组

groupadd git
useradd git -g git
su git



2、生成git的key,并布置到本地,用于认证

ssh-keygen
ssh-copy-id git@127.0.0.1   //此时会在~/.ssh中生成authoritied_key



3、将gitolite克隆下来,并安装

git clone git://github.com/sitaramc/gitolite


克隆下来后,如果你有需要,就根据自己的要求修改其中的一些配置后,再安装。因为默认的配置安装后的库地址,是在当前用户目录下的repositories中。

我的需求就是我们以前有了git库,我去改动啥的就有点不好。我就想着是不是可以将生成库的位置改掉呢?国内搜索了好久,看了好多人的文章,但是也没有涉及到我所需要的。后来搜国外的内容,最后在stackoverflow上找到了一些内容(最后会把地址贴出来)。修改gitolite/src/lib/Gitolite/Rc.pm中的GL_REPO_BASE的值,即可达到要求。如果你要改日志等的纪录,可以将该行下方的值也改掉。

./gitolite/install -to yourInstallPath


这一步还遇到了/usr/bin/perl^M: bad interpreter: No such file or directory报错,一查是因为换行符的原因。使用命令:perl -p -i -e "s/\R/\n/g" filename 即可。

mv ~/.ssh/authorized_keys ~/git.pub
yourInstallPath/gitolite setup -pk ~/git.pub


成功后出现:

Initialized empty Git repository in /gitProject/gitolite-admin.git/
Initialized empty Git repository in /gitProject/testing.git/



4、好了之后,这一步就是测试了

ssh git@127.0.0.1


此时会列出gitolite管理着的项目


5、克隆出管理项目(此时还只能在服务器上操作)

git clone git@127.0.0.1:gitolite-admin


克隆出来的内容会有两个文件夹,keydir和conf。要添加的用户的key放到keydir,然后将用户名加到conf下的文件中。具体的权限配置这里就不说了,有更专业的人写了。


----------------------------------------------------------------------------------------------------------------------------------------------------

后续:

在设置自动更新的钩子时候,忘了将注释了的项目地址那一行打开,最后导致push一次之后就再也提交不上去了抓狂抓狂抓狂抓狂(因为自动脚本中还有一行是更改文件权限的)

一开始以为是因为项目文件的权限被更改了,从而导致pull和push都无法进行。所以做了项目迁移。然后事实证明不是那么回事!!

测试别的项目也是这样无法进行,才考虑到是整个gitolite被搞挂了(可能是gitolite中的全部文件都被更改了权限,从而导致的。不过是不是这样不清楚,希望知道的大牛指点)。重装gitolite后相关项目又可用了。


stackoverflow修改配置的提示:http://stackoverflow.com/questions/26066208/how-to-change-repositories-location-in-gitolite3

换行符问题参考:http://blog.itpub.net/29500582/viewspace-1610793/

gitolite参考:http://airk000.github.io/git/2013/09/25/gitby-gitolite.html

                     https://git-scm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-Gitolite

廖雪峰blog:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值