如何使用嵌套 git 回购禁用 git 回购的子模块功能?

How to disable submodules functionality for git repo with nested git repos?

我有以下回购结构:

/repo
  .git/
  subrepo1/
    .git/
    ...
  dir/
    subrepo2/
      .git/
      ...
  ...
  subrepoN/
    .git/
    ...

subrepos 在外部更新,但不一定有遥控器。 repo 的目的是跟踪所有 subrepo 的更新并在一个地方引入新的更改。更新将在 repo 内形成一个 "vanilla" 分支,然后定期合并到 "dev" 分支。这就是预期的工作流程。 Git 默认情况下拒绝跟踪 subrepo 的文件,假设它们是未配置的子模块。

问题是如何禁用此类行为?我不想使用子模块。我希望 Git 停止将 subrepos 视为子模块,忽略每个 subrepo.git 目录并保留它,并跟踪来自 subrepos 的所有文件.最好在 repo.git/config 文件中。

我查看了 git 手册,尝试了各种方法,但无法实现。有一个有价值的workaround,但它仍然需要为每个subrepo执行git add <subrepo-path>/。子树方法不可取,因为它似乎加倍 space 消耗并增加了复杂性。

我认为没有简单的方法。您必须删除或重命名子文件夹中的 .git/ 或编辑 git 源代码(并重新编译 git)以禁用将 .git/ 识别为子模块。