私は自分のvimの設定を保持するgitリポジトリを持っています。このツリーには、プラグインを含む他の人のreposを参照するいくつかのgitサブモジュールが含まれています。gitサブツリーが埋め込みサブモジュールを初期化できないのはなぜですか?
私はGNU stowで適切なドットファイルリポジトリを設定することに興味がありましたので、vim repoを統合する最善の方法はドットファイルリポジトリにサブツリーすることだと思いました。私のvimの設定が他の誰かからフォークされているので、私は自分のプラグインと設定を保存しながらアップストリームの変更を簡単にマージすることができると考えました。
git subtree add -P vim/.vim-files https:\\xx master --squash
を使用して、サブツリーを自分のレポに正常に追加しました。結果のツリーは次のようになります。私はその後dotfiles/
からgit submodule init
を実行すると、それはfatal: No url found for submodule path 'vim/.vim-files/plugins/submodule1' in .gitmodules
で失敗
dotfiles/
├── .git
└── vim/
├── .vimrc
└── .vim-files/ <= THE SUBTREE
├── .gitmodules
└── plugins/
└── submodule1/
。 URLが存在し、スタンドアロンで使用されている場合、サブツリーのレポはサブモジュールに問題ありません。
見知らぬ人は、.vim-files
にcdしてそこでコマンドを実行すると、エラーは次のようになります。fatal: No url found for submodule path 'vim/.vim-files/vim/.vim-files/plugins/submodule1' in .gitmodules
。
誰でもこの現象の原因を説明できますか?サブツリーとサブモジュールが互換性がないか、バグに遭遇しましたか?