欢迎光临!
若无相欠,怎会相见

Git 删除 submodule 操作记录

序言

之前记录笔记的时候, 采用了分库作为 submodule 的方式, 但是最近使用 Sphinx 组织笔记的时候, 发现有些地方难处理, 因此就删除 submodule, 全都放在一个 repo 里面, 同时使用 readthedocs 进行展示。

不过删除 git submodule 还是需要一些操作的, 下面就记录一下删除过程。

正文

以我自己的学习笔记示例 https://github.com/iloeng/Learning-Notes, 学习笔记中含有 redis-notes 子模块, 如果看不到 .gitmodules, 可以看 commit 记录中的。

但是最近发现笔记最好不要使用 submodule 方式进行管理, 如果这个笔记成熟了, 可以再考虑拆分出来子模块。 如下是 .gitmodules 的内容

[submodule "source/CodeReading/Redis"]
	path = source/CodeReading/Redis
	url = https://github.com/iloeng/Redis-Notes.git
	update = merge

如果仓库没有改动,可以直接使用命令删除 git 缓存的子模块信息

D:\***\Learning-Notes>git rm --cached source/CodeReading/Redis
rm 'source/CodeReading/Redis'

然后删除子模块的目录, 当然也可以不用删除

rm -rf source/CodeReading/Redis

接下来就可以修改或删除 .gitmodules 文件了, 当然删除是对我而言的, 目前就这一个 submodule。 再说我这个仅仅是学习笔记, 不用进行分仓库, 如果后面有需要可以拆分, 但是现在并不用分仓, 所以直接删除。

然后删除 .git 目录里面的 modules 文件夹

最后, 修改 .git 目录下的 config 文件中的 submodule

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = [email protected]:iloeng/Learning-Notes.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
[submodule "source/CodeReading/Redis"]
	active = true
	url = [email protected]:iloeng/Redis-Notes.git
	update = merge

只需要将 submodule 删除就可以了。

整个 repo 中的 submodule 就删除完毕了。

结语

先记录一下删除操作, 可能以后会用得到。

如有错误, 敬请指出, 感谢指正!    — 2022-10-16  21:28:55

赞(0) 打赏
转载请注明:飘零博客 » Git 删除 submodule 操作记录
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

欢迎光临