我有一個git存儲庫,我保持我的vim配置。這棵樹包括一些git子模塊,指向其他人包含插件的回購站。爲什麼git子樹阻止初始化嵌入子模塊?
由於我對使用GNU stow設置合適的dotfiles回購感興趣,我認爲集成vim回購的最佳方式是將其子樹裝入dotfiles回購中。由於我的vim配置是從其他人那裏分發出來的,我想通過這種方式我可以輕鬆地合併上游進行的更改,同時保留我自己的插件和配置。
我已成功添加子樹到我的回購,使用git subtree add -P vim/.vim-files https:\\xx master --squash
。得到的樹是這個樣子:
dotfiles/
├── .git
└── vim/
├── .vimrc
└── .vim-files/ <= THE SUBTREE
├── .gitmodules
└── plugins/
└── submodule1/
當我之後執行從dotfiles/
git submodule init
,它失敗fatal: No url found for submodule path 'vim/.vim-files/plugins/submodule1' in .gitmodules
。即使URL存在,並且子樹回購在獨立使用子模塊時也沒有問題。
陌生人部分是,當我cd到.vim-files
並在那裏運行命令時,錯誤如下所示:fatal: No url found for submodule path 'vim/.vim-files/vim/.vim-files/plugins/submodule1' in .gitmodules
。
任何人都可以解釋是什麼原因導致此行爲?子樹和子模塊是不兼容的還是我偶然發現了一個bug?