2011-08-25 79 views
4

我想創建一個Git回購協議,其中用戶只能從Git存儲庫中提取文件,並且永遠不能將其推入。由於克隆到遠程倉庫的數據不需要修改,因此我正在考慮爲主倉庫創建軟鏈接以節省空間(數據將在許多用戶中重複使用)。Git:如何使用符號鏈接創建本地回購協議Git主要回購

當我做Git克隆時,我可以在本地回購軟件中創建軟鏈接到遠程回購庫中的文件嗎?

例如在git clone <path>/gitrepo .

...其中gitrepo是主要的目錄,並且該命令應創建我的本地git回購與符號鏈接指向gitrepo。應該保持版本控制。直到我做一個git pull,我的本地回購應該保持,即使主gitrepo已經提前。 git pull應該重新創建指向最新主庫的符號鏈接。

我尋求與

感謝, RB

回答

3

混帳 「受控ln -s版」,以取代ln -s本地克隆時,該自動,確實。從git clone手冊頁:

--local, -l

當從克隆庫是在本地機器上, 這個標誌進行一次複印,繞過正常的「混帳知道」傳輸機制和 克隆庫的HEAD和一切在 對象和參考目錄。如果可能,在.git/objects/directory下的文件被硬鏈接以節省空間。當源存儲庫使用/path/to/repo 語法指定時,現在這是默認的 ,所以它基本上是無操作選項。要強制複製 而不是硬鏈接(如果您嘗試使用 備份您的存儲庫,則可能需要),但仍可避免使用通常的「git 」傳輸機制,則可使用--no-hardlinks

另一個有趣的標誌可能是-s

--shared, -s

當倉庫來克隆是在本地機器上, 而不是使用硬鏈接,自動設置 .git/objects/info/alternates共享對象與源存儲庫。生成的存儲庫從其自己的任何對象開始。