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

Git子模块目录意外提交后切换分支重复出现删除标记的解决咨询

解决Git子模块被符号链接覆盖后的识别问题

问题根源

之前提交的符号链接替换了Git用于识别子模块的gitlink特殊记录,导致Git不再把该目录当作子模块。即使删除了符号链接,Git仍会认为原本的子模块目录已丢失,从而标记为待删除。

修复步骤

  1. 切换到出问题的分支,确保.gitmodules配置文件完整(如果之前未被修改):
    git checkout HEAD -- .gitmodules
    
  2. 删除本地被标记为待删除的子模块目录:
    rm -rf 你的子模块目录名
    
  3. 重新初始化并拉取子模块:
    git submodule init && git submodule update
    
  4. 让Git重新识别子模块并提交修复记录:
    git add 你的子模块目录名
    git commit -m "恢复子模块识别,修复符号链接提交导致的问题"
    
    这一步会把Git需要的子模块哈希记录重新写入仓库,替代之前的符号链接记录。

后续注意事项

  • 团队成员本地如需自定义子模块路径,不要用符号链接,而是通过Git配置修改:
    git config submodule.子模块名.path 自定义本地路径
    
    这个配置仅保存在本地,不会被提交到远程仓库。
  • 提醒团队成员拉取修复后的分支后,执行git submodule sync && git submodule update同步子模块配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:05:09