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

如何让git submodule文件在父仓库中可被正常查看和访问

Git子模块使用及文件访问解决方案

你在GitHub上看到的sub_git_project占位符是Git子模块的正常表现:主项目默认仅存储子模块的远程仓库地址、绑定的commit哈希,不会直接存储子模块的实际文件,GitHub平台会将该占位符关联到子模块对应commit的独立仓库页面,不会在主项目内直接展示子模块文件。
如果需要保留子模块的独立版本管理能力,按以下流程操作即可正常访问子模块文件:

本地推送子模块的正确步骤

  • 先提交并推送子模块本身的修改到子模块的远程仓库:
cd /home/user/main_git_project/sub_git_project
git add sub_files.txt
git commit -m "提交子模块文件修改"
git push origin <子模块对应分支名>
  • 回到主项目目录,提交子模块的配置和绑定的commit版本变更:
cd /home/user/main_git_project
git add .gitmodules sub_git_project
git commit -m "添加sub_git_project子模块"
git push origin <主项目分支名>

拉取主项目时获取子模块文件的方法

  • 首次克隆主项目时可直接添加参数拉取所有子模块内容:
    git clone --recurse-submodules <主项目仓库地址>
  • 若已克隆主项目,可手动执行命令拉取子模块文件:
cd <主项目本地目录>
git submodule update --init --recursive

无需独立版本管理的替代方案

如果你不需要子模块的独立版本管理功能,希望子模块的文件直接存储在主项目仓库中、可在GitHub主项目内直接查看,可删除子模块配置后直接提交文件:

# 清除子模块配置
git submodule deinit -f sub_git_project
rm -rf .git/modules/sub_git_project
git rm -f sub_git_project
# 将sub_git_project的原始文件复制到主项目目录后正常提交即可
cp -r <你的子模块原始文件路径> sub_git_project
git add sub_git_project
git commit -m "提交sub_git_project目录文件"
git push

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:03:00