2015-09-14 74 views
0

我有一個部署到我的服務器與git鉤「後更新」。 它掛鉤調用:「git --work-tree =/folderdestination/checkout -f master」,它工作正常Git結帳地圖目的地

它無法更改git回購。但是我需要在項目文件夾www的工作樹檢出中部署這些文件。

例如: WWW/index.php文件(我的混蛋) - >的index.php

回答

0

(我的服務器),您可以做一個稀疏結賬實現這一目標。在遠程服務器上運行此,在裸露的回購協議的目錄:

git config core.sparsecheckout true 
echo "www/*" >> info/sparse-checkout 

檢出的到選定的目的地(比如你已經擁有)在您的post-update掛鉤:

git --work-tree=/ checkout -f master 
mv /www/*/      
rm -rf /www 

假設您有權寫入根目錄,這將在每次推送時將您的www的內容放置在遠程服務器的根目錄中。

+0

jordan,很有意思,但是這隻能檢出info/sparse-checkout中列出的文件。不要更改目標路徑。它把repo的文件夾www放在服務器裏面。我需要將這些文件放在www文件夾倉庫裏/不需要www文件夾。我需要映射文件結帳和目標文件夾 – David

+1

@David,對不起,我錯過了包括我的鉤子的最後一部分。我已經更新了答案。 – joran

+0

其他可能性是在臨時目錄中進行結帳,然後在正確的路徑中同步我需要的rsync文件。 – David