<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://jiva.dila.edu.tw/index.php?action=history&amp;feed=atom&amp;title=Pro_Git_4.5_%E5%85%AC%E9%96%8B%E5%AD%98%E5%8F%96</id>
	<title>Pro Git 4.5 公開存取 - 修訂歷史</title>
	<link rel="self" type="application/atom+xml" href="https://jiva.dila.edu.tw/index.php?action=history&amp;feed=atom&amp;title=Pro_Git_4.5_%E5%85%AC%E9%96%8B%E5%AD%98%E5%8F%96"/>
	<link rel="alternate" type="text/html" href="https://jiva.dila.edu.tw/index.php?title=Pro_Git_4.5_%E5%85%AC%E9%96%8B%E5%AD%98%E5%8F%96&amp;action=history"/>
	<updated>2026-05-05T12:50:10Z</updated>
	<subtitle>本 Wiki 上此頁面的修訂歷史</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://jiva.dila.edu.tw/index.php?title=Pro_Git_4.5_%E5%85%AC%E9%96%8B%E5%AD%98%E5%8F%96&amp;diff=548&amp;oldid=prev</id>
		<title>imported&gt;Ray：​新頁面: 匿名的讀取許可權該怎麼實現呢？也許除了內部私有的專案之外，你還需要託管一些開源專案。抑或你使用一些自動化的伺服器來進行編譯，...</title>
		<link rel="alternate" type="text/html" href="https://jiva.dila.edu.tw/index.php?title=Pro_Git_4.5_%E5%85%AC%E9%96%8B%E5%AD%98%E5%8F%96&amp;diff=548&amp;oldid=prev"/>
		<updated>2011-05-25T08:56:06Z</updated>

		<summary type="html">&lt;p&gt;新頁面: 匿名的讀取許可權該怎麼實現呢？也許除了內部私有的專案之外，你還需要託管一些開源專案。抑或你使用一些自動化的伺服器來進行編譯，...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;匿名的讀取許可權該怎麼實現呢？也許除了內部私有的專案之外，你還需要託管一些開源專案。抑或你使用一些自動化的伺服器來進行編譯，或者一些經常變化的伺服器群組，而又不想整天產生新的 SSH 金鑰——總之，你需要簡單的匿名讀取許可權。&lt;br /&gt;
&lt;br /&gt;
或許對小型的配置來說最簡單的辦法就是運行一個靜態 web 服務，把它的根目錄設定為 Git 倉庫所在的位置，然後開啟本章第一節提到的 post-update 掛鉤(hook)。這裡繼續使用之前的例子。假設倉庫處於 /opt/git 目錄，主機上運行著 Apache 服務。重申一下，任何 web 服務程式都可以達到相同效果；作為範例，我們將用一些基本的 Apache 設定來展示大體需要的步驟。&lt;br /&gt;
&lt;br /&gt;
首先，開啟掛鉤：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
$ cd project.git&lt;br /&gt;
$ mv hooks/post-update.sample hooks/post-update&lt;br /&gt;
$ chmod a+x hooks/post-update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
假如使用的 Git 版本小於 1.6，那 mv 命令可以省略—— Git 是從較晚的版本才開始在掛鉤實例的結尾添加 .sample 尾碼名的。&lt;br /&gt;
&lt;br /&gt;
post-update 掛鉤是做什麼的呢？其內容大致如下：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
$ cat .git/hooks/post-update &lt;br /&gt;
#!/bin/sh&lt;br /&gt;
exec git-update-server-info&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
意思是當通過 SSH 向伺服器推送時，Git 將執行這個命令來更新 HTTP 獲取所需的檔。&lt;br /&gt;
&lt;br /&gt;
下一步，你需要在 Apache 設定檔中添加一個 VirtualHost 條目，把 DocumentRoot 參數設定為 Git 專案的根目錄。這裏我們假設你在 DNS 設定中使用萬用字元，以便將 *.gitserver 發送到任何你所在的主機來運行所有這些東西：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName git.gitserver&lt;br /&gt;
    DocumentRoot /opt/git&lt;br /&gt;
    &amp;lt;Directory /opt/git/&amp;gt;&lt;br /&gt;
        Order allow, deny&lt;br /&gt;
        allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
另外，需要把 /opt/git 目錄的 Unix 使用者組設定為 www-data ，這樣 web 服務才可以讀取倉庫內容，因為 Apache 運行 CGI 腳本的模組（預設）使用的是該用戶：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
$ chgrp -R www-data /opt/git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
重啟 Apache 之後，就可以通過專案的 URL 來克隆該目錄下的倉庫了。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
$ git clone http://git.gitserver/project.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
這一招可以讓你在幾分鐘內為相當數量的用戶架設好基於 HTTP 的讀取許可權。另一個提供非授權訪問的簡單方法是開啟一個 Git 守護進程，不過這將要求該進程(process)的常駐，我們將在下一節討論這部份，如果你傾向走這條路的話。&lt;/div&gt;</summary>
		<author><name>imported&gt;Ray</name></author>
	</entry>
</feed>