git 如何在一个父项目里管理目录重叠的两个 submodule

2023-12-21 17:36:42 +08:00
 cnt2ex

场景:利用 git bare repo 来管理 dotfiles ,这里提到的。

为了更方便的初始化 ohmyzsh ,把 ohmyzsh 作为 submodule 加入了进去:

git--git-dir=$HOME/.cfg/ --work-tree=$HOME submodule add -b master https://github.com/ohmyzsh/ohmyzsh .oh-my-zsh

同时,ohmyzsh 也包含了一些插件,比如 zsh-autosuggestions ,但是如果再通过 submodule add 加入,尝试

git--git-dir=$HOME/.cfg/ --work-tree=$HOME submodule add -f -b master https://github.com/zsh-users/zsh-autosuggestions .oh-my-zsh/custom/plugins/zsh-autosuggestions

(加上-f 是因为 ohmyzsh 的.gitignore 忽略了 custom/这个目录) 会报错:fatal: Pathspec '.oh-my-zsh/custom/plugins/zsh-autosuggestions' is in submodule '.oh-my-zsh'

似乎 git 不允许两个 submodule 的目录重叠?有没有什么比较好的方法能处理这种情况呢?

978 次点击
所在节点    程序员
2 条回复
zizon
2023-12-21 17:55:23 +08:00
repo 建个目录符号链 submodule 需要的部分?
cnt2ex
2023-12-21 18:21:49 +08:00
@zizon 试了一下,好像符号链接就行,虽然每次从其他机器 pull 都要手动创建符号链接。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1002376

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX