架gitolite服务器的过程可真是曲折啊。现在总算是弄明白了,记录下来,纪念两周来死掉的脑细胞们。
git服务器可以采用四种方式 的协议:本地传输,SSH 协议,Git 协议和HTTP 协议。其中SSH协议是推荐的协议。而权限管理器有两种Gitosis和Gitolite。Gitosis已经于09年停止更新,不过仍然可以用。gitolite一直还在更新版本。相对来叫Gitolite的权限控制更加强大和复杂一些。
一开始,我选择的是win7+cygwin+gitolite的方案来尝试。cygwin是一款在windows操作系统下模拟linux环境的一个很好用的工具。
首先,不管怎么样一定要保证ssh的安装和配置。
网上这方面的文章挺多的。觉得这篇是比较靠谱的http://www.hksilicon.com/kb/cn/articles/35631/Cygwin-SSH。不过,这篇就到用户名密码方式为止了。关键的密钥方式没有涉及。因为gitosis和gitolite权限管理器都需要用密钥方式的ssh连接来实现。
为了能够实现密钥认证方式,折腾了好久,可是无论是网上的某些文章还是问人,都没能成功。直到有天晚上回家后,在自己机器上实验才找到正确的方法。具体办法见这篇文章:http://www.360doc.com/content/11/0319/14/3804236_102576048.shtml。之所以用转载的网址,是因为不太喜欢原作的排版配色。用这种方式验证密钥成功后,在公司的台式机和笔记本上又做了一次验证。
ssh协议部分搞清楚了以后,就开始尝试git的权限管理器。由于读了蒋鑫的《git权威指南》,决定用gitolite来管理权限。不过这本书讲的都是在linux操作系统下的操作方法。对我用cygwin来讲还是有部分出入。于是,开始在网上找gitolite架设配置的文章。但是,不巧的是,11年10月份,sitaramc(git的作者)把gl-easy-install从主分支中删掉了。而网上几乎所有的文章都是基于gl-easy-install方式的。
当然sitaramc在他的wiki中给出了在服务器端安装的指南。可惜还是基于linux操作系统的。对我来讲,有两种选择,要么改用linux服务器,要么改用gitosis权限管理器。
作为一个linux白痴,我当然选择gitosis。
推荐这篇文章,我在cygwin下就照这篇文章把gitosis架起来了。http://rongjih.blog.163.com/blog/static/33574461201121611154627/。对cygwin中配置gitosis介绍得非常详细,而且验证可行。照说,架成这样就该完成了。但是自己的无知,却促使我最终完成了gitolite的架设。
周六的时候,验证gitosis正常工作了。计划周一过来后,就把客户端给其他同事装上。悲催的事情发生在周一上午。客户端访问不到gitosis了。因为路由重启后,我的ip被更换了。而那时我根本不知道如何把gitosis服务器设定到另一个ip上。最后决定装ubuntu,因为网上关于在linux下配gitolite的文章挺全的。
过了一周以后,gitolite终于work了。参考资料是蒋鑫的《git权威指南》和http://github.com/sitaramc/gitolite。建议还是参考sitaramc的原文来搞。客户端就用msysgit+TortoiseGit就可以了。当然这是给非程序的使用者来用的,对于程序是不需要TortoiseGit的。各种集成开发环境都已经集成了git。使用起来应该还是挺方便的。接下来,就是通过权限设置实战一个完整的项目。
gitolite配置的曲折过程
最新推荐文章于 2022-05-15 01:01:45 发布