【发布时间】:2017-03-28 18:05:16
【问题描述】:
我有一个 git 存储库,用于保存我的 vim 配置。该树包含许多 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 存在并且子树 repo 在独立使用时对子模块没有问题。
奇怪的是,当我 cd 进入 .vim-files 并在那里运行命令时,错误看起来像这样:fatal: No url found for submodule path 'vim/.vim-files/vim/.vim-files/plugins/submodule1' in .gitmodules。
谁能解释导致这种行为的原因?是子树和子模块不兼容还是我偶然发现了一个错误?
【问题讨论】:
标签: git git-submodules git-subtree