0
我有一個部署到我的服務器與git鉤「後更新」。 它掛鉤調用:「git --work-tree =/folderdestination/checkout -f master」,它工作正常Git結帳地圖目的地
它無法更改git回購。但是我需要在項目文件夾www的工作樹檢出中部署這些文件。
例如: WWW/index.php文件(我的混蛋) - >的index.php
我有一個部署到我的服務器與git鉤「後更新」。 它掛鉤調用:「git --work-tree =/folderdestination/checkout -f master」,它工作正常Git結帳地圖目的地
它無法更改git回購。但是我需要在項目文件夾www的工作樹檢出中部署這些文件。
例如: WWW/index.php文件(我的混蛋) - >的index.php
(我的服務器),您可以做一個稀疏結賬實現這一目標。在遠程服務器上運行此,在裸露的回購協議的目錄:
git config core.sparsecheckout true
echo "www/*" >> info/sparse-checkout
檢出的到選定的目的地(比如你已經擁有)在您的post-update掛鉤:
git --work-tree=/ checkout -f master
mv /www/*/
rm -rf /www
假設您有權寫入根目錄,這將在每次推送時將您的www
的內容放置在遠程服務器的根目錄中。
jordan,很有意思,但是這隻能檢出info/sparse-checkout中列出的文件。不要更改目標路徑。它把repo的文件夾www放在服務器裏面。我需要將這些文件放在www文件夾倉庫裏/不需要www文件夾。我需要映射文件結帳和目標文件夾 – David
@David,對不起,我錯過了包括我的鉤子的最後一部分。我已經更新了答案。 – joran
其他可能性是在臨時目錄中進行結帳,然後在正確的路徑中同步我需要的rsync文件。 – David