2011-09-25 52 views
3

我們在服務器上有一個「裸」的git倉庫,用於Web門戶項目。幾個程序員,設計師等......執行了幾十個pushpull「裸」git存儲庫:我如何讓Apache始終「看到」最新的提交?

現在我們要測試的服務器本身的項目,並始終測試最後通過安裝在同一臺機器上的「裸」 Git倉庫,存儲在Apache Web服務器提交。

哪有我們'取消'存儲庫,並讓工作目錄包含總是只有上一次提交從最後push派生?

或其他任何旨在實現相同結果?

回答

6

您可以使用post-receive掛鉤在webserver文檔根目錄/存儲庫中執行git pull

在你的裸庫 做

mv hooks/post-receive.sample hooks/post-receive 
chmod +x .git/hooks/post-receive 

後收到應該像

#!/bin/sh 
WEB_ROOT='/var/www/project' 
cd $WEB_ROOT 
git pull 

更優雅solution不涉及Web服務器區域是一個Git倉庫,您也可以查看關於hooks

的git文檔注意:如果您使用簡單解決方案,請確保您的網絡服務器不提供.git目錄,這會讓一些黑客/餅乾訪問網站源代碼!

+3

又如:http://toroid.org/ams/git-website-howto – Mat

+0

感謝您的安全提示,但是沒關係,因爲服務器不在互聯網上 – gd1

+1

@ GD1:不要忘記,大多數的這些攻擊也來自內部,即你公司的一些員工。比抱歉的更安全,禁止訪問'.git'目錄只需要在web服務器配置文件中佔用一行。 – RageZ

相關問題