Git
我已經嵌套了 git repos,它會導致問題嗎?
歷史
- 我安裝了etckeeper
- 我決定跟踪例如shorewall防火牆配置作為它自己的git儲存庫。我想我希望更容易查看特定的配置更改。我決定不再需要 etckeeper 並將其解除安裝。所以沒有衝突,除了…
- 在重新考慮 etckeeper 時,我注意到我實際上並沒有刪除
/etc/.git
.在我意識到之前,我會認為這
git init
會拒絕創建嵌套的 git 儲存庫。如果我只是繼續使用 etckeeper,我會擔心外部 git 在跟踪內部 .git 目錄時會變得臃腫。或者,它可能會忽略目錄中的所有文件,這些文件是單獨的 git 儲存庫。
所以我很好奇,可能出了什麼問題?
我對嵌套 git 儲存庫的第一次測試沒有遇到這三個問題中的任何一個。您不必添加
.git
;gitignore
所有.git
目錄的內容都會被自動忽略。其他文件(例如在與 相同的目錄中
.git
)可以在外部儲存庫中送出。所以我認為 etckeeper 可以繼續跟踪所有文件,而子目錄可以在特定的儲存庫中更仔細地記錄它們的歷史。這兩個歷史不會互相了解任何事情。
後來才發現一個問題。當我送出了一個目錄,該目錄是一個 git 儲存庫並包含送出本身,並且我還沒有從外部儲存庫中送出該目錄中的文件時,它會顯示為
Subproject
. 內容僅由送出 ID 表示。gitk
似乎將其顯示為 aSubmodule
。這聽起來像 git 真的想將它們辨識為
git-submodule
. 我不是特別明白git-submodule
,我只知道它以有點混亂而聞名。我還注意到該
.etckeeper
文件因.git
目錄中的文件而膨脹,即使 git 正在使用子模組。