在 Git 中删除子模块
本教程演示了如何在 git 中删除子模块。
在开发软件项目时,我们经常会用到我们项目所需的外部框架和库。这些框架和库可能是开源的并保存在 git 仓库中。
我们可能希望将这些外部库的源代码保留在 git 仓库的项目目录中。git 的子模块功能允许我们将这些外部源(它们是单独的 Git 仓库)作为子目录保留在我们的项目 Git 仓库中。
然后我们可能会决定删除这些 Git 子模块,因为它们可能不再与我们的项目相关。
我们现在将用一个例子来解释它。
在 Git 中删除子模块
在处理软件项目时,我们经常需要使用库的外部资源。外部库可能由第三方或不同团队开发。
可以在单独的 Git 仓库中跟踪此类外部库。
我们可以使用 Git 的子模块功能,将这样的外部 Git 仓库合并为我们项目 Git 仓库的子目录。因此,我们可以将另一个仓库克隆到我们的项目中,并保持每个单独的提交。
通常,我们可能会替换或删除此类外部库。我们可能会觉得我们的项目不再需要这样一个外部库。
因此,我们决定从我们的项目 Git 仓库中删除外部库。为此,我们需要删除外部库的 Git 子模块。
假设我们的项目 Git 仓库中有一个子模块 good-ext-lib
。我们现在希望从 Git 仓库和文件系统中删除子模块 good-ext-lib
。
我们需要按如下方式运行 Git 命令来删除子模块。
$ git submodule deinit -f path/to/good-ext-lib
$ rm -rf .git/modules/path/to/good-ext-lib
$ git rm -f path/to/good-ext-lib
命令 git submodule deninit
取消注册子模块 good-ext-lib
。它从 git/config
文件中删除整个 submodule.$name
部分。此外,它还删除了子模块的工作树。
.git
文件夹中带有 good-ext-lib
子模块路径的命令 rm -rf
从我们项目的 .git/modules
目录中删除子模块目录。
项目目录中带有 good-ext-lib
子模块路径的命令 git rm
删除了超级项目(我们的项目)的跟踪数据。它删除了 gitlink
条目。此外,它消除了 .gitmodules
文件中存在的子模块部分并暂存该文件。
最后,我们需要提交删除 good-ext-lib
子模块,如下所示。
$ git commit -m "removed submodule good-ext-lib"
因此,现在我们已经从 Git 的项目目录中删除了 good-ext-lib
子模块。
因此,我们展示了如何在 Git 中删除子模块。
欲了解更多信息,请访问 -