2016-05-25 150 views
1

的Git克隆--mirror爲什麼是它有子模塊不能正常工作

git clone --mirror [repo-url]

git clone --mirror --recursive [repo-url]

不會與子模塊的工作。試圖git fetch --recurse-submodules給出了錯誤

fatal: Refusing to fetch into current branch refs/heads/master of non-bare repository

排除--mirror但是確實工作。

因此,如果已使用--mirror選項克隆存儲庫,則無法使子模塊進入,除非存儲庫在沒有--mirror的情況下被克隆。

從工作拷貝運行git submodule update --init --recursive提供錯誤消息:

fatal: Not a git repository (or any of the parent directories): .git

從鏡像存儲庫運行git submodule init給出了這樣的錯誤消息:

fatal: /usr/libexec/git-core/git-submodule cannot be used without a working tree.

使用GIT_WORK_TREE和/或GIT_DIR環境變量也不起作用。

是否再次從頭開始克隆存儲庫的唯一選項?

編輯:順便說一下,在第一時間爲--mirror的原因是因爲我下面這個:http://jonathannicol.com/blog/2013/11/19/automated-git-deployments-from-bitbucket/

回答

1

--mirror標誌創建的存儲庫是一個純倉庫(即它沒有一個工作區)。 AFAIK,子模塊只能初始化並下載到工作區域。

更多:

+0

在創建資源庫後,我會跑'CD〜/ git的 GIT_WORK_TREE = /家庭/ /WWW git的結帳-f生產'仍然無法從工作區或回購目錄獲取子模塊。似乎很奇怪的是,通過以這種方式克隆存儲庫,子模塊不能在以後得到。當然有可能,我做錯了什麼? –

+0

感謝您的幫助,從您的鏈接,此解決方案爲我工作:http://stackoverflow.com/a/31627058/644721 –