簡體   English   中英

git 子模塊添加致命:不是 Git 存儲庫

[英]git submodule add fatal: Not a Git Repository

我是 Git 的新手,我盡力尋找有關此問題的一些文檔,但無濟於事。

這是我的命令:

$ git submodule add https://github.com/joliver/EventStore.git externalsource/JOliverEventStore/ 

致命:不是 git 存儲庫:../.git/modules/externalsource/JOliverEventStore 無法簽出子模塊'externalsource/JOliverEventStore'

我在我的 repo 的根目錄中,目前沒有/externalsource/JO liverEventStore/的目錄。 錯誤是關於一個我不知道的目錄。

如果我像這樣將子模塊添加到根目錄:

$ git submodule add https://github.com/joliver/EventStore.git JOliverEventStore 

我沒問題,它會在根目錄中創建文件夾。

任何見解將不勝感激。

它可能取決於您使用的 Git 的版本: 最近的線程(2012 年 2 月)提到了一個錯誤:

最近,一個名為<name>的子模塊在超級項目的.git/modules/<name>目錄中有一個 git 目錄,而工作樹包含一個指向那里的gitfile

當相同的子模塊被添加到它目前不存在的分支上時(在 .gitmodules 文件中找不到),名稱沒有從路徑初始化。
當找到.git/modules/<name>目錄時,這會導致在gitfile中輸入錯誤的路徑,因為這很高興地使用了 - 現在是空的 - 名稱。
然后它總是只指向一個目錄,即使我們在目錄層次結構中有更深的路徑。

但更一般地說,使用git submodule<path>參數:

<path>是克隆的子模塊在超級項目中的相對位置。

  • 如果<path>不存在,則通過從命名的 URL 克隆來創建子模塊。
  • 如果<path>確實存在並且已經是有效的 git 存儲庫,則將其添加到變更集中而不進行克隆。
    提供第二種形式是為了簡化從頭開始創建新子模塊的過程,並假定用戶稍后會將子模塊推送到給定的 URL。

eoinoc 在評論中提到了另一個原因,在問題“ git status返回fatal: Not a git repository but.git exists and HEAD has proper permissions ”中有詳細說明。

我的倉庫位置變了,我需要更新 git 的配置文件。

這看起來很愚蠢,但因為我剛剛在那個愚蠢的錯誤上浪費了 30 分鍾......

您的父存儲庫必須已經創建為 git 存儲庫。 我剛剛創建了父模塊,然后創建了子模塊並嘗試將git submodule add到父模塊中。 但是,父級尚未初始化為 git 存儲庫。

這導致了與您提到的錯誤相同的錯誤(“不是 git 存儲庫”)。 然而,它不是 git 存儲庫的父級......愚蠢。

我浪費了幾分鍾只是為了一個簡單的問題

首先git init

然后安裝主題git submodule add https://github.com/joliver/EventStore.git JOliverEventStore

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM