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

Add subproject as usual folder to repository

我注意到在我的目录中有两个模块是我的Git存储库的子项目。这是因为我把它们都移到了一个git repo中,而那些模块(目录)有自己的.git目录。

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

1
+Subproject commit e97ff0348e6adc697192ca4e6a367bdaeddcda6b-dirty

等。

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

我试过add *git init。但它只是看不到这些目录,即使它在存储库中。我如何让Git看到这些目录,这样它就可以像其他模块一样跟踪它们的更改?

我的Git存储库如下所示:

1
2
3
4
5
6
7
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.
 ...
 ...

另外,那些没有被跟踪的目录不是空的。

更新如果我重命名该目录,那么执行以下操作:江户十一〔四〕号

我明白了:

1
2
3
4
5
6
7
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,将不返回任何内容,或者只返回没有进行任何更改的内容。


建议之后,我看了一下:un子模块a git子模块

第一次尝试:

1
git submodule deinit

在这之后,它没有改变以前的行为。但当我这样做的时候:

1
git rm --cached yourSubmodule

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