历史
- 我安装了etckeeper
- 我决定将 shorewall 防火墙配置作为其自己的 git 存储库进行跟踪。我想我希望更容易查看特定的配置更改。我决定不再需要 etckeeper 并将其卸载。所以没有冲突,除了...
- 在重新考虑 etckeeper 时,我注意到我实际上并没有删除
/etc/.git
.
在我意识到之前,我本以为这git init
会拒绝创建嵌套的 git 存储库。
如果我只是继续使用 etckeeper,我会担心外部 git 可能会在跟踪内部 .git 目录时变得臃肿。或者,它可能会忽略全部目录中的文件是单独的 git 存储库。
所以我很好奇,可能会出什么问题?
答案1
我对嵌套 git 存储库的第一次测试没有遇到这三个问题。您不必.git
添加gitignore
;所有目录的内容.git
都会被自动忽略。
其他文件(例如与 位于同一目录中.git
)可以提交到外部存储库中。
所以我认为 etckeeper 可以持续跟踪所有文件,而子目录可以在特定存储库中更仔细地记录其历史记录。这两段历史对彼此一无所知。
我后来才注意到一个问题。当我提交一个 git 存储库目录时和包含提交本身,和我尚未从外部存储库中的该目录提交文件,然后它显示为Subproject
.内容仅由提交 ID 表示。 gitk
似乎将其显示为 a Submodule
。
这听起来 git 真的很想将它们识别为git-submodule
.我不是特别明白git-submodule
,我只是知道它有点令人困惑。
我还注意到该.etckeeper
文件会随着目录中的文件而膨胀.git
,即使 git 使用子模块也是如此。