我有這樣的環境中發展網絡:的Git目錄和工作樹
服務器A
多個VM(每一個代表不同的項目)。它用於部署。
服務器B
主機每混帳裸倉庫
本地機器
每個開發人員克隆回購,本地工作,並逼退到服務器B裸回購。
問題是我需要在每個虛擬機(服務器A)有工作樹,但沒有git目錄。並保持與沒有工作樹的git目錄服務器B.
每次有人git push
下載到存儲庫中,遠程工作樹(在服務器A)需要更新。
我想避免什麼?
我不希望在我的部署服務器(服務器A)中有一個完整的git目錄,因爲它有SSD磁盤,並且我需要很多(非常昂貴的)空間。
我的第一種方法
我的第一個方法是使用一個掛鉤,在服務器B 更新後的這基本上使得git archive
到.gz
文件,並使用SSH密鑰,然後使用scp
在服務器A中提取它。
PRO是易於實現的。
CON即使有人修改了單行,我也會傳輸每個存儲庫文件。
任何人都可以扔我任何想法?是否可以將GIT_WORK_TREE設置爲遠程位置?我通過SSH嘗試沒有成功。
在此先感謝。
我終於在/ tmp工作樹中執行了'git checkout',然後在更新後的鉤子中執行了'rsync'。現在正常工作.. –