如何把 Git Submodule 变成普通文件夹

使用 git submodule 可以非常方便地在 Hugo 站点中添加主题,而且可以紧跟主题版本,快速拉取主题作者的最新改动。如果我不想继续跟进版本更新,如何才能取消 submodule 与远程的同步,而跟随主仓库的版本呢?

我想要实现的是把 Git Submodule 变成普通文件夹。这需要两步:先删除 Git Submodule(删除所有相关的git配置文件即可),再把 submodule 中的文件添加到主仓库,就可以了。

删除 Git submodule 的命令:

git rm --cached submodule_path  # 删除指向submodule HEAD的引用
git rm .gitmodules              # 删除主仓库根目录下的.gitmodule配置文件
rm -rf submodule_path/.git      # 删除submodule目录下的.git配置文件

添加 submodule 文件夹的命令:

git add submodule_path          # 添加原先 submodule 中的所有文件到主仓库里
git commit -m "xxxxxx"          # 提交改动,完成目标

在 stackoverflow 上有网友编写了一个 shell 脚本,可以简单地用一行命令来实现 git submodule 到普通文件夹的转换。当然,需要自行承担风险,有能力的话,也可以去查看脚本的源代码,进行适合自己的修改。

构建自己的便携版Chrome

博客搬家了