有没有办法将子模块添加到共享目录结构的git仓库

时间:2014-05-09 16:38:02

标签: git git-submodules

我有一个像这样的目录结构的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目录,它无法添加子模块使用相同的目录。

是否有子模块共享目录结构,但仍有不同的文件?

1 个答案:

答案 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更新子模块时自动更新链接并删除死链接。