将子项目作为常规文件夹添加到存储库

时间:2014-12-10 14:17:27

标签: git repository git-submodules

我注意到在我的目录中有两个模块是我的Git存储库的Subprojects。之所以发生这种情况,是因为我将它们全部移动到一个Git仓库,这些模块(目录)有自己的.git目录。

当我更改这些模块中的任何内容时,我不会在主Git存储库中看到任何更改。我只会看到这个:

+Subproject commit e97ff0348e6adc697192ca4e6a367bdaeddcda6b-dirty

但我不需要那样做。我只需要一个没有任何子项目的Git存储库。所以我删除了这些子项目中的.git目录。现在我在主存储库中看不到任何变化。

我尝试了add *git init。但它只是看不到那些目录,即使它在存储库中。如何让Git看到这些目录,以便跟踪其他模块的变化?

My Git存储库看起来像这样:

my_project/
 .git
 dir1
 dir2
 dir3 # Let's say this is the one directory that Git does not see. So any changes I make here are not tracked at all.
 ...
 ...

P.S。那些未跟踪的目录不为空。

更新 如果我重命名该目录,那么执行以下操作: git diff

我明白了:

diff --git a/dir3 b/dir3
deleted file mode 160000
index e279fc4..0000000
--- a/dir3
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e279fc481b9706ad79b24281efdbabd55179aee8

如果我将该目录重命名为原始名称,然后执行git diff,则不返回任何内容或只是没有进行任何更改。

1 个答案:

答案 0 :(得分:4)

建议后我查看了这个:un-submodule a git submodule

首先尝试:

git submodule deinit

在此之后它并没有改变旧的行为。但是当我这样做时:

git rm --cached yourSubmodule

然后它将其作为子模块删除,git开始在主存储库中看到这些模块。