git - 像往常一样将子项目添加到存储库

标签 git repository git-submodules

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

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

+Subproject commit e97ff0348e6adc697192ca4e6a367bdaeddcda6b-dirty

等等

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

我尝试了 add *git init。但即使它在存储库中,它也看不到这些目录。我怎样才能让 Git 看到这些目录,以便它像其他模块一样跟踪它们的更改?

我的 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.
 ...
 ...

附言那些没有被跟踪的目录不是空的。

更新 如果我重命名该目录,则执行以下操作: git 比较

我明白了:

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-submodule a git submodule

第一次尝试:

git submodule deinit

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

git rm --cached yourSubmodule

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

关于git - 像往常一样将子项目添加到存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27403278/

相关文章:

git - 为什么 Teamcity 无法 pull git 子模块

Git 子模块和钢筋

windows - Git 如何从 UNC 路径获取更改?

独立开发者的 Git : merge vs rebase

git - GitHub 附带的 Git 版本没有别名功能吗?

docker - 私有(private) docker 存储库的别名

java - Spring数据存储库: "Containing" for Collections

Git 不会更新目录

git - 如何找出哪些 Git 分支影响给定的子目录?

c# - 使用 Rhino Mocks 创建内存数据库以供开发代码和用户界面时使用