1. 简介
Gitweb提供了git版本库的图形化web浏览功能。可以到网站http://git.kernel.org/体验下效果,如下图所示。
Gitweb界面
它既可以通过配置架设于web服务器上,也可以无须任何配置针对单独git版本库即时启动。Gitweb支持多个版本库,可以对版本库进行目录浏览(包括历史版本),可以查看文件内容,查看提交历史,提供搜索及RSS feed支持,也可以提供目录文件的打包下载等。
2. 架设于本地版本库的Gitweb
如果想在本地版本库看看自己项目的效果,不妨用Git 自带的一个命令,可以使用类似lighttpd这样轻量级的web服务器启动一个临时进程。如果是在Linux 主机上,通常都预装了lighttpd (可到http://www.lighttpd.net下载源码进行安装),无须任何配置,可以git工作区中键入以下命令来启动。
$ git instaweb |
这会在1234端口开启一个HTTPD 服务,随之在浏览器中显示该页,十分简单。关闭服务时,只需在原来的命令后面加上--stop 选项就可以了:
$ git instaweb –stop |
3. 架设于服务器上的Gitweb
3.1. 使用git源码安装
Gitweb的代码位于git的源码库中,如果是从源码进行安装的,那么gitweb应该已经安装好了。通过下面的命令可以查看Gitweb的安装位置:
$ [root@bogon /]# ls -F $(dirname $(dirname $(git --html-path)))/gitweb $ gitweb.cgi* static/ $ [root@bogon /]# echo $(dirname $(dirname $(git --html-path)))/gitweb $ /usr/local/share/gitweb |
在Apache的配置文件中添加如下配置,重启Apache后,即可用地址http://server/gitweb来访问git服务。(注意:你的linux系统gitweb的安装路径可能与我不同)
Alias /gitweb "/usr/local/share/gitweb/" <Directory "/usr/local/share/gitweb"> Options FollowSymLinks +ExecCGI AddHandler cgi-script .cgi DirectoryIndex index.cgi gitweb.cgi Order allow,deny Allow from all </Directory> |
3.2. Gitweb的配置
编辑/etc/gitweb.conf(如果没有就新建),按如下配置即可:
# 版本库的根目录 $projectroot = "/path/to/repos"; # 设置克隆每个版本库的URL地址,一个版本库可以设置多个地址 @git_base_url_list= ("git://192.168.1.101/git", "http://192.168.1.101/git"); # 菜单定制:tree view文件旁显示追溯(blame)链接 $feature{'blame'}{'default'} = [1]; $feature{'blame'}{'override'} = 1; # 菜单定制:tree添加快照(snapshot)下载链接 $feature{'snapshot'}{'default'} = ['zip', 'tgz']; $feature{'snapshot'}{'override'} = 1; |
gitweb博大精深,也可以定制首页模板,有兴趣再研究,可查看git gitweb --help帮助手册。