2013-03-27 43 views
4

我們使用三個主要分支的Git開發,測試&掌握裸倉庫。密碼保護主存儲庫

我們有很多開發環境都有git倉庫。每個人都創建了開發分支,並在該分支上工作,並將他們的代碼推送到開發分支的裸倉庫中。

同時,我們希望限制開發人員將他們的代碼從他們的開發分支推送到測試&主分支。

有什麼辦法通過使用密碼來保護裸存儲分支。

回答

6

如果您使用linux來託管存儲庫,我強烈建議使用gitolite

Gitolite允許您爲每個用戶或用戶組指定他們可以推送到哪些分支等等。

Gitolite是在將要託管多個git倉庫,每個許多開發商,其中,「任何人都可以做任何事情,任何回購」任何服務器有用的是不是一個好主意。這裏有兩個例子來說明。

它使用SSH密鑰來識別用戶,並根據這決定什麼是允許或不允許。

+0

我第二個這個。 Gitolite易於安裝並且工作得很好。 – jszakmeister 2013-03-27 10:05:20

2

或者你變成一個分佈式的基於拉的方法:

而不是每個隊員,他們有自己的倉庫的一個分支;可以通過寫入訪問所有內容。

而不是一個只讀主分支有一個主存儲庫,只有選定的一組維護者有寫權限。每當你想從開發迴歸合併到main-repo時,他們都必須通知維護人員並讓他們這樣做。

我也建議使用gitolite或Gitosis來輕鬆地管理存儲庫(我自己只使用Gitosis,這是一個微風建立和維護)。

1

您無法使用「僅限git」密碼保護特定分支。這是所有的權限,或沒有。

您可以使用gitolite,它非常適合處理權限,正如Ikke所說。

另一種更「手工製造」的方法是在遠程裸倉庫(hooks/post-receive)中使用預接收鉤子來詢問密碼。

你可以用一個簡單的shell腳本來做到這一點,或者使用你想要的任何語言。