-
1. 起步
-
2. Git 基础
-
3. Git 分支
-
4. 服务器上的 Git
- 4.1 协议
- 4.2 在服务器上部署 Git
- 4.3 生成 SSH 公钥
- 4.4 架设服务器
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 第三方托管服务
- 4.10 小结
-
5. 分布式 Git
-
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
现在,你已经可以对你的项目进行基本的读写和只读访问了,你可能想设置一个简单的基于 Web 的可视化工具。Git 附带一个名为 GitWeb 的 CGI 脚本,有时用于此目的。
如果你想看看 GitWeb 在你的项目中会是什么样子,如果你的系统上有一个轻量级 Web 服务器,如 `lighttpd` 或 `webrick`,Git 会附带一个命令来启动一个临时实例。在 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/` 在线查看你的仓库。