2013-03-07 247 views
5

我在github上有一個項目,我想在我的服務器上進行鏡像。當做一個git克隆--mirror在哪裏的實際文件?

我試過以下內容:git clone --mirror [email protected]:user/repo.git

然後在repo.git目錄中,我有以下文件結構(例如,輸出ls):

FETCH_HEAD branches/ description info/ packed-refs HEAD config hooks/ objects/ refs/

所以我的問題是:哪裏是我的文件!?看起來好像有一堆git相關的東西,但我找不到我寫的代碼。我錯過了明顯的東西嗎?

btw,git status返回fatal: This operation must be run in a work treegit branch返回分支。奇怪的。

回答

7

當你git clone --mirror,它生成一個裸倉庫,所以它不會有一個工作區。我更經常地使用--mirror來製作我的工作回購的只讀克隆供其他人使用。

這聽起來像你可能應該省略--mirror選項。

the git clone man page

--mirror
設置源代碼庫的鏡像。這意味着--bare。與--bare相比,--mirror不僅將源的本地分支映射到目標的本地分支,還映射所有ref(包括遠程跟蹤分支,註釋等),並設置refspec配置,以便所有這些ref被覆蓋git遠程更新目標存儲庫中。

要完全清楚,裸露的鏡像倉庫確實擁有從中克隆的倉庫的全部內容,但它沒有可以查看這些文件的工作區。如果您從鏡像克隆(git clone /path/to/local/mirror_repo.git)中克隆,則會在新的非裸回購中獲得工作樹。

+0

我沒有意識到裸回購沒有工作區域。我可能沒有足夠的親和力,不能正確理解這部分文檔。謝謝。 – cpa 2013-03-07 18:52:40

+0

是的,裸回購是非常接近於正常回購.git目錄內的東西。 – MikeSep 2013-03-07 20:13:07