這個問題出於好奇而不是任何實際的問題,但我可以有效地讓我的$ GIT_DIR成爲git://example.com/repo.git/?所以沒有.git文件夾 - 每一次提交等都會經歷網絡開銷。git沒有.git文件夾 - 一個遠程git-dir
編輯: 一個潛在用途的情況下可能是試圖做一個簡單的「出口」像SVN,但事實證明,問題的答案here
這個問題出於好奇而不是任何實際的問題,但我可以有效地讓我的$ GIT_DIR成爲git://example.com/repo.git/?所以沒有.git文件夾 - 每一次提交等都會經歷網絡開銷。git沒有.git文件夾 - 一個遠程git-dir
編輯: 一個潛在用途的情況下可能是試圖做一個簡單的「出口」像SVN,但事實證明,問題的答案here
$GIT_DIR
,introduced in May 2005,是:
SHA1_FILE_DIRECTORY
(是GIT_OBJECT_DIRECTORY
,即 「$GIT_DIR/objects
」)GIT_INDEX_FILE
(「 $GIT_DIR/index
」)當未定義GIT_DIR時,它默認爲「.git
」。
它意味着當前工作目錄的絕對路徑或相對路徑,而不是http或git絕對路徑。
靈感來自這個post from Junio C. Hamano:
一些命令不會在後一種情況下工作。
例如,「git diff <one-tree>
」(代表了一種diff的工作樹的部分你目前與給定樹)會失敗。
注意:這不像「git diff
」,它與索引相同。
使用這些命令(以及在工作樹外部沒有GIT_DIR
的情況下運行時出錯的其他命令),您真的需要在的您感興趣的子目錄中。 。
不,不可能有遠程$ GIT_DIR(也不可能在.git/objects/info/alternates
有遠程存儲庫)。 Git只是不這樣工作。
我會假設,如果你問這個問題,你可能試圖創建一個問題來解決。
想想爲什麼你就需要有一個奇異的Git倉庫的人可以讀取和直接從自己的遠程機器寫不出來,並試圖將它們添加到這個問題,因爲它似乎所有你就是全世界。試圖像SVN一樣使用Git。而那將結束痛苦。
對於初學者來說,如果你不想做一個完整的深鏡子只是創造了上游的補丁,請注意:
--depth <depth>
創建一個淺克隆與歷史截斷成指定的修訂數量。一個淺層的 存儲庫有一些限制(你不能從中克隆或獲取,也不能從 開始),但是如果你只關心一個歷史悠久的大型項目的近期歷史,想要發送修補程序作爲補丁。 (git help clone
)
這並不是不合理的。 Git掙扎的一個領域是很多非常大的文件,其中有很多歷史記錄發生了變化。也就是說,.git /目錄非常大 - 可能比工作副本大得多。例如,.git可能不適合筆記本電腦的硬盤,但工作副本可能。此外,海報從來沒有提到共享該遠程存儲庫(這將是一個問題) – 2009-08-17 01:52:01
我必須同意@Pat Notz。我擔心你急於判斷這是一個「X Y」問題。記住,僅僅因爲你無法想象一個用例並不意味着它不存在。但是,鑑於Git不支持此功能的現實,您的回答非常有用。 – 2010-05-24 21:54:15
像其他人指出,Git是不寫這樣的工作方式。不過,我認爲你可以在網絡上安裝你的.git目錄。也許你可以將遠程服務器掛載爲NFS或sshfs這樣的文件系統。這不是你想要的一般,但它可能適用於某些情況。
可能的(鈍,但功能)解決方案:遠程掛載您要使用的目錄,並將.git目錄軟連接到掛載點。
你的問題措辭可怕,語法是我可能知道答案,但不能解決問題。 – 2009-08-16 10:03:44
我其實同意。我現在重新寫了它,希望更好:) – 2009-08-18 06:52:59