【问题标题】:git submodules: ln -sgit 子模块:ln -s
【发布时间】:2010-11-02 21:49:58
【问题描述】:

我怎样才能创建一个可以在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 会破坏我的链接。我的印象是软链接是到相对路径的逻辑链接,因此删除对象并重新添加它将保持链接完整。怎样才能达到想要的效果?

【问题讨论】:

    标签: linux git unix git-submodules


    【解决方案1】:

    使用 ln -s 建立的软链接应该如您所愿。据我了解,如果您执行 git submodule update,您的目录 proj/lib3/submod/lib 的某些部分会被删除并重新创建。这意味着这与手动执行 rm proj/lib3/submod 和之后的 mkdir -p proj/lib3/submod/lib 相比没有区别。

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

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

    【讨论】:

    • 这是一个很好的观点。我大部分时间都使用 Kubuntu linux,尽管如果我手头没有 linux 副本,我有时会从 Cygwin 中使用。我会再试一次,确保我在 linux 中做到这一点。谢谢!
    猜你喜欢
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2015-04-24
    • 2014-09-30
    • 1970-01-01
    • 2015-03-22
    • 2015-04-20
    相关资源
    最近更新 更多