当我尝试将一个 git 存储库添加并提交到另一个 git 存储库时,git 很有帮助地将它变成了一个子模块。如果我想在外部存储库中跟踪并提交对该嵌套存储库的更改怎么办?即,我希望外部存储库跟踪嵌套存储库的工作树及其 .git 目录中的所有文件。
这里的用例是我想为我的整个“项目”目录(其中许多使用 git 或其他 VCS)维护一个 git 存储库,用于版本化备份以及统计信息收集。转到外部 repo 中的特定提交应该向我显示当时所有项目的完整状态,包括例如后来可能被重新设置为遗忘的提交。
不可能。
在进一步研究之后,我发现答案很遗憾,这是不可能的。Git 被硬编码以忽略嵌套的 git 存储库,并且不能被告知对它们进行索引。
对于备份用例,最常见的类似 git 的建议是bup,仅对于该用例来说似乎很好,但似乎无法完成 git 可以统计的所有事情。