首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

筹建Git Http服务器

2012-09-25 
搭建Git Http服务器? ? Git是很流行很好用的版本控制器,但是仅仅依靠强大的console管理并不能完全满足项目

搭建Git Http服务器

? ? Git是很流行很好用的版本控制器,但是仅仅依靠强大的console管理并不能完全满足项目管理的需要:

? ? 1. Leader们希望能更直观的看到代码的更新和足迹,比如通过Wed UI界面。这时,把Git整合到项目管理系统中(比如Trac)是一个很不错的方式,例如这里。当然,我们也可以很方便的搭建专门的Git服务,见方式一

? ? 2. 我们需要通过比SSH更“酷”的方式来clone代码库,比如通过http。这时,你居然想不到Git自带的backend就可以轻易的解决这个问题,详见方式二

?

一、通过Gitweb提供代码浏览服务

? ? 注意,Gitweb仅仅提供基于浏览器的代码浏览,不提供代码更改、代码提交等服务。

? ? 1. 安装Gitweb:

sudo apt-get install gitweb

? ? ubuntu中gitweb cgi脚本应该默认放在/usr/lib/cgi-bin/中,刚好和apache2默认的cgi-bin目录一致,太体贴了 :)

? ? 否则,请参照apache的default配置,为你的apache2增加响应gitweb cgi的路径,例如:

?

Alias /gitweb /usr/share/gitwebRedirect permanent /repos /gitweb<Directory /usr/share/gitweb>  Options FollowSymLinks +ExecCGI  AddHandler cgi-script .cgi  AuthType Basic  AuthName "Restricted Files"  AuthUserFile /opt/access/git.passwd  Require valid-user</Directory>

? ? 2. 配置Gitweb,增加git库:将/etc/gitweb.conf中的$projectroot指向你git库(允许多个)所在的目录。

? ? 3. OK。访问http://yourhost/repos应该可以看到所有git库的代码了,包括更新足迹。

? ? 4. 编辑gitweb.cgi,设置Gitweb,比如公司logo之类的(参考)。

?

?

二、通过Smart Http提供代码下载、上传服务:

? ??Smart Http是通过激活Git(1.6.6及以后版本)自带的、名为git-http-backend的cgi脚本实现的。注意,此脚本只在Apache2.x上有效。

? ? 1. 配置apache2,开启git-http-backend脚本:

?

SetEnv GIT_PROJECT_ROOT /my_repos_root_pathSetEnv GIT_HTTP_EXPORT_ALLScriptAlias /repos/ /usr/lib/git-core/git-http-backend/

? ? 现在git clone http://yourhost/repos/xxx.git应该可以检出你的xxx代码库了。

?

? ? 但是,处于安全考虑,没有授权方式的访问不提供上传(push)服务,所以暂时还不能push你的更新到代码库中。

? ? 2. 配置授权,开启push服务。这里以basic授权为例:

?

<Location /repos/>AuthType Basic        AuthName "Git Access"AuthUserFile /opt/access/git.passwdRequire valid-user</Location>

? ?当然,你也可以配置成匿名clone,授权push的工作方式,这里就不举例了,参考这里。

?

?

?

热点排行