git子模块:ln -s

时间:2009-06-15 00:54:15

标签: linux git unix git-submodules

如何创建一个能够在git submodule update生效的目录链接?

给出以下示例目录结构:

proj
|-- lib3
|   `-- submod
|       `-- lib
`-- lib

我使用以下命令创建了从proj/lib/proj/lib3/submod/lib的软链接:

brad@bradpc:~/proj/lib$ ln -s ../lib3/submod/lib submodlib

创建以下目录结构:

proj
|-- lib3
|   `-- submod
|       `-- lib
`-- lib
    `-- submodlib

但是,运行git submodule update会破坏我的链接。我的印象是软链接是相对路径的逻辑链接,因此删除对象并重新添加它将保持链接完整。我怎样才能达到预期的效果?

1 个答案:

答案 0 :(得分:1)

使用 ln -s 制作的软链接应该像您预期的那样。据我了解,如果您执行 git子模块更新,目录 proj / lib3 / submod / lib 的某些部分会被删除并重新创建。这意味着没有区别,只需手动执行 rm proj / lib3 / submod ,然后再执行 mkdir -p proj / lib3 / submod / lib 。< / p>

我在openSuse Linux安装上手动测试了这个(rm和mkdir),重新创建目录结构后,软链接仍然很好。

你在哪个操作系统环境中工作?也许这不是一个真正的软链接。