2010-10-14 134 views
1

我想爲我的組織部署git。我希望用戶無法訪問服務器並僅對存儲庫進行提交。 但是我希望存儲庫是一個真正的文件系統,我可以使用apache虛擬主機。 我所做的是以下幾點:git組開發服務器設置

cd /home/vhosts 
git init --shared {projectname} 
git config receive.denyCurrentBranch ignore 

我當時想運行git reset --hard後,每推後到主存儲庫。

這是個好主意嗎?我是否應該有第二個存儲庫,它的作用是git pull,而不是git reset --hard ......這是更重的嗎?我可以將其設置爲hook

謝謝。

+0

這個問題真的很糟糕,甚至沒有人想批評它嗎? – Simon 2010-10-14 16:43:58

+0

我不瞭解設置。爲什麼此服務器上的存儲庫「推回」到主存儲庫? – mckeed 2010-10-14 19:15:47

回答

2

我已經通過一些修改描述了設置。喬馬勒有一個很好的寫作,我用作我的配置基地。 A web-focused Git workflow

1

通常設置它的辦法是有一個「裸」儲存庫是頂級高手,大家都推和拉離。運行Apache的Web服務器有自己的獨立存儲庫(如果硬件不足,它們可能在同一臺計算機上)。您可以在主存儲庫上安裝一個post-commit掛鉤,它會在/home/vhosts下爲Apache啓動一個「git pull」。 (此掛鉤是最簡單的一臺機器上,但你可以做到跨機器,如果你設置了這種方式。)

要創建一個純倉庫:

mkdir -p /home/git/{projectname}.git 
cd /home/git/{projectname}.git 
git init --shared --bare 

純倉庫沒有工作副本全部,只是.git結構的內容。

0

我不確定Apache與它有什麼關係。

只要設置一個回購倉庫,就像Greg說的那樣,這個回購倉庫就是您的主要回購倉庫。然後人們從中拉出來,當他們準備好時,他們會推動它。您可能想要拒絕主回購庫上的非快速合併,以便人們總是獲取最新的代碼,並與之合併,然後再推送。

給人們進入回購的最好方法是使用Git進程和git://協議。

如果你想要一個web界面,然後使用gitweb,但這只是一個方便。

也有是在section 5.1 of the Pro Git book不同的工作流程,這可能有助於澄清的最佳工作流程是什麼,你的一些很好的討論。