簡體   English   中英

添加git子模塊時,“你還在分支上”

[英]“You are on a branch yet to be born” when adding git submodule

我試圖在我的.vim/bundles目錄中添加一些子模塊,當我嘗試添加這個特殊的repo時,Git給了我一個我以前從未見過的奇怪錯誤:

$ git submodule add -f git://github.com/derekwyatt/vim-scala.git .vim/bundle/vim-scala
fatal: You are on a branch yet to be born
Unable to checkout submodule '.vim/bundle/vim-scala'

知道是什么原因引起的嗎?

如果我將相同的repo克隆到測試目錄(而不是通過submodule命令),它可以正常工作,並創建預期的文件。

要修復該錯誤,您應該刪除與.git/modules/目錄.git/modules/相同路徑的文件夾。 當添加子模塊時第一次使用子模塊的url不正確時,可能會發生此錯誤。

您需要現有倉庫中添加子模塊,該倉庫需要處於添加和提交子模塊鏈接的狀態, 並且子模塊倉庫本身必須具有檢出的提交。

現在,如果您可以在其他地方創建常規克隆,則子模塊repo本身必須正常。 但是,如果repo為空而子克隆沒有,則看起來像submodule add抱怨。 這家伙建議只需再次運行相同的submodule add命令就可以解決此問題。

如果內部倉庫不為空,請檢查要包含子模塊的倉庫。 更改到運行git submodule add的同一目錄,並運行git statusgit branch以驗證包含的repo是否至少創建了一個分支並且不處於奇怪的狀態。

如果要添加沒有master分支的子模塊,則會發生此錯誤。 如果要在添加子模塊(例如, develop )時使用其他分支,可以使用以下命令:

git submodule add -b <branch> <repository>

正如@ drew-noakes所暗示的那樣,這可能是因為嘗試使用.gitignore文件中列出的目錄名添加子模塊。

暫無
暫無

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

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