-
A1. 附录 A: Git 在其他环境
- A1.1 图形界面
- A1.2 Visual Studio 中的 Git
- A1.3 Visual Studio Code 中的 Git
- A1.4 IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine 中的 Git
- A1.5 Sublime Text 中的 Git
- A1.6 Bash 中的 Git
- A1.7 Zsh 中的 Git
- A1.8 PowerShell 中的 Git
- A1.9 小结
-
A2. 附录 B: 在应用程序中嵌入 Git
-
A3. 附录 C: Git 命令
4.7 Git 服务器上的 GitWeb
GitWeb
现在你的项目已经有了基本的读写和只读访问权限,你可能想设置一个简单的基于网络的查看器。Git自带一个名为GitWeb的CGI脚本,有时会用于此目的。

如果你想看看GitWeb在你的项目中会是什么样子,Git带有一个命令,如果你系统上安装了lighttpd
或webrick
之类的轻量级Web服务器,就可以启动一个临时实例。在Linux机器上,lighttpd
通常已安装,因此你可以在项目目录中输入git instaweb
来运行它。如果你运行的是macOS,Leopard预装了Ruby,所以webrick
可能是你最好的选择。要使用非lighttpd
处理器启动instaweb
,你可以使用--httpd
选项运行它。
$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO WEBrick 1.3.1
[2009-02-21 10:02:21] INFO ruby 1.8.6 (2008-03-03) [universal-darwin9.0]
这会在端口1234上启动一个HTTPD服务器,然后自动启动一个Web浏览器并打开该页面。这对于你来说非常容易。当你完成并想关闭服务器时,你可以使用--stop
选项运行相同的命令。
$ git instaweb --httpd=webrick --stop
如果你想为你的团队或你托管的开源项目在服务器上一直运行Web界面,你需要设置CGI脚本,使其由你的普通Web服务器提供服务。一些Linux发行版提供了gitweb
软件包,你可以通过apt
或dnf
安装,所以你可能想先尝试一下。我们将非常快速地介绍手动安装GitWeb。首先,你需要获取Git源代码(GitWeb随附),并生成自定义CGI脚本。
$ git clone https://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
SUBDIR gitweb
SUBDIR ../
make[2]: `GIT-VERSION-FILE' is up to date.
GEN gitweb.cgi
GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/
请注意,你必须使用GITWEB_PROJECTROOT
变量告诉命令在哪里找到你的Git仓库。现在,你需要让Apache对该脚本使用CGI,为此你可以添加一个VirtualHost。
<VirtualHost *:80>
ServerName gitserver
DocumentRoot /var/www/gitweb
<Directory /var/www/gitweb>
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>
再次强调,GitWeb可以通过任何支持CGI或Perl的Web服务器提供服务;如果你喜欢使用其他方式,设置起来也不会困难。此时,你应该能够访问http://gitserver/
来在线查看你的仓库。