如何使用嵌套 git 回购禁用 git 回购的子模块功能?
How to disable submodules functionality for git repo with nested git repos?
我有以下回购结构:
/repo
.git/
subrepo1/
.git/
...
dir/
subrepo2/
.git/
...
...
subrepoN/
.git/
...
subrepo
s 在外部更新,但不一定有遥控器。 repo
的目的是跟踪所有 subrepo
的更新并在一个地方引入新的更改。更新将在 repo
内形成一个 "vanilla" 分支,然后定期合并到 "dev" 分支。这就是预期的工作流程。 Git 默认情况下拒绝跟踪 subrepo
的文件,假设它们是未配置的子模块。
问题是如何禁用此类行为?我不想使用子模块。我希望 Git 停止将 subrepo
s 视为子模块,忽略每个 subrepo
的 .git
目录并保留它,并跟踪来自 subrepo
s 的所有文件.最好在 repo
的 .git/config
文件中。
我查看了 git 手册,尝试了各种方法,但无法实现。有一个有价值的workaround,但它仍然需要为每个subrepo
执行git add <subrepo-path>/
。子树方法不可取,因为它似乎加倍 space 消耗并增加了复杂性。
我认为没有简单的方法。您必须删除或重命名子文件夹中的 .git/
或编辑 git 源代码(并重新编译 git)以禁用将 .git/
识别为子模块。
我有以下回购结构:
/repo
.git/
subrepo1/
.git/
...
dir/
subrepo2/
.git/
...
...
subrepoN/
.git/
...
subrepo
s 在外部更新,但不一定有遥控器。 repo
的目的是跟踪所有 subrepo
的更新并在一个地方引入新的更改。更新将在 repo
内形成一个 "vanilla" 分支,然后定期合并到 "dev" 分支。这就是预期的工作流程。 Git 默认情况下拒绝跟踪 subrepo
的文件,假设它们是未配置的子模块。
问题是如何禁用此类行为?我不想使用子模块。我希望 Git 停止将 subrepo
s 视为子模块,忽略每个 subrepo
的 .git
目录并保留它,并跟踪来自 subrepo
s 的所有文件.最好在 repo
的 .git/config
文件中。
我查看了 git 手册,尝试了各种方法,但无法实现。有一个有价值的workaround,但它仍然需要为每个subrepo
执行git add <subrepo-path>/
。子树方法不可取,因为它似乎加倍 space 消耗并增加了复杂性。
我认为没有简单的方法。您必须删除或重命名子文件夹中的 .git/
或编辑 git 源代码(并重新编译 git)以禁用将 .git/
识别为子模块。