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

文章目录

    之前由于要引用一个 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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式