添加子模块忽略内容的最佳方式

Best way to add sub module ignored content

我正在使用存储库 (B) 作为我的项目 (A) 的子模块。在那个 repo (B) 中,有一个 ingored 目录,专用于该项目的本地配置文件。

我想从我自己的项目 (A) 中对该目录的内容进行版本控制。由于这些文件 git 从 (B) 中被忽略,我想我可以简单地 git 添加它们,但我得到 fatal: Pathspec 'oh-my-zsh/custom' is in submodule 'oh-my-zsh'.

最好的方法是什么(我不想更改 (B) 中的任何内容)?

我建议使用指向本地文件的符号链接:

a
├── b
│   └── local -> ../b-local
└── b-local

这很好地将回购 a 的内容与回购 b 的内容区分开来。此外,由于 b/localgit 忽略 ,因此它不会对您当前的工作流程造成很大干扰。

或者,git subtree 可能值得一看。它会让您将回购 (B) 作为子目录导入回购 (A)。您的回购协议的用户只需克隆一个回购协议,而不必经历讨厌的 git 子模块更新 --init 步骤。项目 (B) 的历史可以被压缩或完全保持原样。