GitWeb

2018-07-10 17:12 更新

GitWeb

現(xiàn)在我們的項目已經(jīng)有了可讀可寫和只讀的連接方式,不過如果能有一個簡單的 web 界面訪問就更好了。Git 自帶一個叫做 GitWeb 的 CGI 腳本,運(yùn)行效果可以到 http://git.kernel.org 這樣的站點體驗下(見圖 4-1)。

Figure 4-1. 基于網(wǎng)頁的 GitWeb 用戶界面

如果想看看自己項目的效果,不妨用 Git 自帶的一個命令,可以使用類似 lighttpd 或 webrick 這樣輕量級的服務(wù)器啟動一個臨時進(jìn)程。如果是在 Linux 主機(jī)上,通常都預(yù)裝了 lighttpd ,可以到項目目錄中鍵入 git instaweb 來啟動。如果用的是 Mac ,Leopard 預(yù)裝了 Ruby,所以 webrick 應(yīng)該是最好的選擇。如果要用 lighttpd 以外的程序來啟動 git 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 服務(wù),隨之在瀏覽器中顯示該頁,十分簡單。關(guān)閉服務(wù)時,只需在原來的命令后面加上 --stop 選項就可以了:

$ git instaweb --httpd=webrick --stop

如果需要為團(tuán)隊或者某個開源項目長期運(yùn)行 GitWeb,那么 CGI 腳本就要由正常的網(wǎng)頁服務(wù)來運(yùn)行。一些 Linux 發(fā)行版可以通過 apt 或 yum 安裝一個叫做 gitweb 的軟件包,不妨首先嘗試一下。我們將快速介紹一下手動安裝 GitWeb 的流程。首先,你需要 Git 的源碼,其中帶有 GitWeb,并能生成定制的 CGI 腳本:

$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/opt/git" \
        prefix=/usr gitweb
$ sudo cp -Rf gitweb /var/www/

注意,通過指定 GITWEB_PROJECTROOT 變量告訴編譯命令 Git 倉庫的位置。然后,設(shè)置 Apache 以 CGI 方式運(yùn)行該腳本,添加一個 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 的網(wǎng)頁服務(wù)來運(yùn)行;如果偏向使用其他 web 服務(wù)器,配置也不會很麻煩。現(xiàn)在,通過 http://gitserver 就可以在線訪問倉庫了,在 http://git.server 上還可以通過 HTTP 克隆和獲取倉庫的內(nèi)容。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號