Git

我已經嵌套了 git repos,它會導致問題嗎?

  • November 16, 2016

歷史

  1. 我安裝了etckeeper
  2. 我決定跟踪例如shorewall防火牆配置作為它自己的git儲存庫。我想我希望更容易查看特定的配置更改。我決定不再需要 etckeeper 並將其解除安裝。所以沒有衝突,除了…
  3. 在重新考慮 etckeeper 時,我注意到我實際上並沒有刪除/etc/.git.

在我意識到之前,我會認為這git init會拒絕創建嵌套的 git 儲存庫。

如果我只是繼續使用 etckeeper,我會擔心外部 git 在跟踪內部 .git 目錄時會變得臃腫。或者,它可能會忽略目錄中的所有文件,這些文件是單獨的 git 儲存庫。

所以我很好奇,可能出了什麼問題?

我對嵌套 git 儲存庫的第一次測試沒有遇到這三個問題中的任何一個。您不必添加.gitgitignore所有.git目錄的內容都會被自動忽略。

其他文件(例如在與 相同的目錄中.git)可以在外部儲存庫中送出。

所以我認為 etckeeper 可以繼續跟踪所有文件,而子目錄可以在特定的儲存庫中更仔細地記錄它們的歷史。這兩個歷史不會互相了解任何事情。

後來才發現一個問題。當我送出了一個目錄,該目錄是一個 git 儲存庫包含送出本身,並且我還沒有從外部儲存庫中送出該目錄中的文件時,它會顯示為Subproject. 內容僅由送出 ID 表示。 gitk似乎將其顯示為 a Submodule

這聽起來像 git 真的想將它們辨識為git-submodule. 我不是特別明白git-submodule,我只知道它以有點混亂而聞名。

我還注意到該.etckeeper文件因.git目錄中的文件而膨脹,即使 git 正在使用子模組。

引用自:https://unix.stackexchange.com/questions/323489