Git
章節 ▾ 第二版

4.7 伺服器上的 Git - GitWeb

GitWeb

現在您已經可以對您的專案進行基本的讀取/寫入和唯讀存取,您可能想要設定一個簡單的網頁視覺化工具。Git 有一個名為 GitWeb 的 CGI 腳本,有時會使用它來達到此目的。

The GitWeb web-based user interface
圖 49. GitWeb 網頁使用者介面

如果您想查看 GitWeb 對您的專案的外觀,如果您的系統上有輕量級的網頁伺服器(例如 lighttpdwebrick),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 伺服器,然後自動啟動網頁瀏覽器,在該頁面上開啟。對您來說相當容易。當您完成並想要關閉伺服器時,可以使用 --stop 選項執行相同的命令

$ git instaweb --httpd=webrick --stop

如果您想在伺服器上持續執行網頁介面,供您的團隊或您託管的開放原始碼專案使用,您需要設定 CGI 腳本,使其由您正常的網頁伺服器提供服務。某些 Linux 發行版有一個 gitweb 套件,您可以透過 aptdnf 安裝,因此您可能需要先嘗試此方法。我們將非常快速地逐步完成手動安裝 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 的網頁伺服器一起提供服務;如果您喜歡使用其他伺服器,設定起來應該不會太困難。此時,您應該可以造訪 http://gitserver/ 來線上檢視您的儲存庫。

scroll-to-top