我有一个像这样的目录结构的repo
/foo
/foo/bar
/foo/bar/me
/foo/bar/you
/foo/one
/foo/one/two
/foo/one/three
我想添加一个具有此结构的子模块
/foo/bar/file.txt
/foo/one/otherfile.txt
有没有办法将子模块添加到我的repo中,子模块共享一些相同的目录结构?
我尝试过使用基本的add子模块命令,但是我得到'foo' already exists in the index
的错误,我认为这意味着我的repo已经有了一个/ foo目录,它无法添加子模块使用相同的目录。
是否有子模块共享目录结构,但仍有不同的文件?
答案 0 :(得分:0)
将子模块签出到子文件夹中,例如/foo/submodule
,所以它看起来像这样:
/foo/submodule/foo/bar/file.text
/foo/submodule/foo/one/otherfile.txt
然后只需链接您的仓库中的文件:
/foo/bar/file.txt --> link to ../submodule/foo/bar/file.txt
/foo/one/otherfile.txt --> link to ../submodule/foo/one/otherfile.txt
甚至可以扩展为在必要时通过git hook更新子模块时自动更新链接并删除死链接。