Git 项目中移除 submodule,并将其代码并入当前项目管理

更新日期: 2023-02-24 阅读次数: 1503 字数: 243 分类: Git

之前由于要引用一个 github 上的三方的 SDK,所以作为 git submodule 引入了进来:

git submodule add https://github.com/STMicroelectronics/BlueSTSDK_Android.git BlueSTSDK

但是,实际开发时,发现这个 SDK 的代码有问题,所以做了部分本地修改。

而这些修改又不方便提交给官方。

由于是 submodule,修改也没法提交到当前项目的 git 管理中。也就无法同步到其他的开发机上,很是不方便。

所以,需求移除 submodule,并将其代码并入当前项目管理。

具体操作

git rm --cached BlueSTSDK/
git rm .gitmodules
rm -rf BlueSTSDK/.git
git add BlueSTSDK

这样就可以了。再次查看状态:

> git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    BlueSTSDK

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    .gitmodules

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        BlueSTSDK/

gitmodules 的内容

> cat .gitmodules
[submodule "BlueSTSDK"]
        path = BlueSTSDK
        url = https://github.com/STMicroelectronics/BlueSTSDK_Android.git

参考

  • https://stackoverflow.com/questions/1759587/how-to-un-submodule-a-git-submodule

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式