[英]“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 status
和git branch
以驗證包含的repo是否至少創建了一個分支並且不處於奇怪的狀態。
如果要添加沒有master
分支的子模塊,則會發生此錯誤。 如果要在添加子模塊(例如, develop
)時使用其他分支,可以使用以下命令:
git submodule add -b <branch> <repository>
正如@ drew-noakes所暗示的那樣,這可能是因為嘗試使用.gitignore文件中列出的目錄名添加子模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.