gitweb
可以通过搭建git服务器将代码保存在git服务器上,多个开发者可以从服务器上clone代码,也可以各自维护一份本地代码,在本地更新之后可以提交到git服务器上,提高开发效率。
git可以很方便的在服务器上创建一个版本库,然后供各个客户端提交、拉取代码,见git 简单实用; 但是链接中的方式不支持网页的方式查看远程版本库的内容,这样如果想要查看版本库中代码,只能git 拉取到本地再用编辑器打开,非常不方便。因此考虑搭建一个git 的web服务器,支持在web页面上查看代码。
gitweb就是支持网页查看git版本库中代码的工具。
搭建Apache
gitweb是基于http服务工作的,因此需要先在服务器上搭建http服务。考虑使用apache。
具体步骤,见 Apache Http 服务器搭建
搭建gitweb
1. 安装gitweb
# yum install gitweb
2. 配置gitweb
(1) 配置 /etc/gitweb.conf 文件:
在默认的文件末尾添加:
$projectroot = '/home/git/gitweb'; #gitweb展示的那些代码库的根目录
(2) 配置 /etc/httpd/conf.d/git.conf,如下:
Alias /gitweb /var/www/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf
<Directory /var/www/git>
Options ExecCGI FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
其中, Alias /gitweb /var/www/git 是指示apache服务器在接收到 http://domain-name/gitweb的请求之后,转向 /var/www/git 目录;
SetEnv GITWEB_CONFIG /etc/gitweb.conf 指示gitweb使用配置文件 /etc/gitweb.conf (就是第一步配置过的,里面指定了版本库的根目录)
< Directory /var/www/git> 中的部分指示了 /var/www/git 目录(http://domain-name/gitweb 转到的目录)的一些性质。
(3) 添加代码库到gitweb指定的代码库根目录下:
假设已经存在了一个版本库 /home/git/repos/DataExchange.git,可以拷贝或者软链接:
cp -r /home/git/repos/DataExchange.git /home/git/gitweb/DataExchange
或
ln -s /home/git/repos/DataExchange.git /home/git/gitweb/DataExchange
(4) 确保 apache用户(在httpd.conf中配置的用户)具有访问 gitweb指定代码库的权限
比如, /home/git/gitweb 属于git用户和git组。可以将apache用户添加到 git组中:
usermod -a -G git apache