You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git 如何仅删除子模块引用而不删除子模块仓库本身?

Git 移除子模块引用且保留本地文件的操作方案

普通的子模块删除命令会同步删除本地子模块文件,以下操作仅清除主仓库的子模块关联记录,不会修改工作区的子模块文件内容。

操作步骤

  • 第一步:执行带--cached参数的删除命令,仅移除暂存区中的子模块跟踪记录,不触碰本地文件
    注意将命令中的<子模块相对路径>替换为你实际的子模块路径,不要在路径末尾加斜杠
    git rm --cached <子模块相对路径>
    
  • 第二步:编辑主仓库根目录下的.gitmodules文件,删除对应子模块的配置段落,示例需要删除的段落格式如下:
    [submodule "xxx"]
      path = xxx
      url = git@xxx.com:xxx/xxx.git
    
  • 第三步:检查主仓库的.git/config文件,如果存在对应子模块的同名配置段落,同样删除即可
  • 第四步:提交改动到主仓库
    git add .gitmodules
    git commit -m "移除<子模块名>的子模块关联,保留本地文件"
    

注意事项

  • 请勿使用git submodule deinit命令执行该操作,该命令会直接清空本地子模块目录内的所有内容
  • 操作完成后,原有的子模块目录会变为主仓库的普通未跟踪目录,你可以根据需要选择将其添加到主仓库跟踪列表,或写入.gitignore忽略提交

内容的提问来源于stack exchange,提问作者Maciejek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 16:15:00