我正在尋找一種方法在我自己的服務器上託管私人git倉庫。
我正在使用Github開源項目,但我寧願使用我自己的服務器來存儲私人git回購。在我自己的服務器上託管私人Git回購協議?
有人可以建議我應該爲此使用哪個腳本。
Trac不是我正在尋找的,但。我想要的東西,最好是基於PHP的解決方案(只是可選的),尤其是。有一個更簡單的用戶界面。
任何幫助在這裏讚賞。
我正在尋找一種方法在我自己的服務器上託管私人git倉庫。
我正在使用Github開源項目,但我寧願使用我自己的服務器來存儲私人git回購。在我自己的服務器上託管私人Git回購協議?
有人可以建議我應該爲此使用哪個腳本。
Trac不是我正在尋找的,但。我想要的東西,最好是基於PHP的解決方案(只是可選的),尤其是。有一個更簡單的用戶界面。
任何幫助在這裏讚賞。
那麼,對於非的gitosis/gitorious設置你有兩種選擇真的:
/home/ac/.ssh/authorized_keys2
其shell設置爲/usr/bin/git-shell
是可以訪問的Linux帳戶。這意味着他們將無法使用shell以linux用戶身份登錄,因此除了在您的計算機上使用git之外,其他任何操作都是如此。在這兩種情況下,根據您的需要(無論是作爲用戶還是作爲組的一部分),所涉及的用戶都需要(讀寫| |)訪問git存儲庫。
讓你有一個目錄/ git/project,然後在那裏有用戶存儲庫是有意義的,因爲有多個人推到同一個存儲庫通常是一個壞主意(根據我的經驗,人們打破了一些東西) 。例如,你可能有/srv/git/proj/proj-ninefingers.git
,並有一個「釋放」回購'/ srv/git/proj/project.git`這可能是我如果運行團隊努力的話。權限,shell等將根據需要設置。
請注意,如果您想允許通過只讀git協議導出,則需要確保配置的git用戶具有讀權限,並且git-daemon-export-ok
存在於裸倉庫中。 git update-server-info
也必須在gitweb
將拿起存儲庫之前運行,如果你想使用它。
正如其他人所說的那樣,git gc
優化了存儲庫,定期執行此操作是個不錯的主意。克倫的工作?
最後,存在大量的框架來簡化它(gitosis,gitorious,...)。我不認爲它比通過各種機制提供對文件夾的訪問更簡單,但那就是我。
由於我的設置的一個例子,它只是做我自己,我有:
$ cat /etc/passwd | grep git
git:x:1002:1002:Antony Vennard,,,:/home/git:/usr/bin/git-shell
gitdaemon:x:112:65534::/nonexistent:/bin/false
$ cat /etc/group | grep git
git:x:1002:
$ ls -l /srv/git
drwxr-xr-x 7 git git 4096 2010-09-12 23:31 bsdnt.git
drwxr-xr-x 7 git git 4096 2010-06-16 22:32 vforth.git
$ cat /home/git/.ssh/authorized_keys2
ssh-rsa somehex user1
ssh-rsa somehex user2
這意味着用私有密鑰USER1任何人都可以登錄,並承諾無論這些存儲庫。
從來沒有嘗試過自己,但gitorious主機上的代碼的運行上:
另一種選擇用的gitosis:
如果你只想代碼存儲庫並沒有網頁,只需將「git的」目錄訪問的地方,也就是足以通過HTTP克隆(請注意,您將需要ssh或類似推到倉庫)。
例如,我的一個項目以http://psi5.com/~geier/mutextrace.git的方式託管。
這是一個好主意,定期運行在該庫「混帳氣相色譜法」,以打包的對象在一起,使客戶不必使成千上萬的訪問。
如果你想要網頁,那麼gitorious的確是要走的路。
不會更適合serverfault嗎? – marcgg 2011-01-07 13:52:32