求助:解决GitHub中不同仓库克隆文件夹内容无法访问问题
解决Git嵌入仓库(子模块占位符)无法正常提交的问题
你遇到的是Git嵌套仓库的问题:当你把两个独立的Git仓库(前后端)文件夹直接加到新仓库里时,Git会自动将它们识别为子模块占位符(就是GitHub上带右箭头的文件夹),但这种自动识别的子模块没有正确配置,所以无法访问内容。下面给你两种针对性的解决方案:
方案1:直接整合前后端代码(不保留原仓库关联)
如果你只是需要把代码整合到一个仓库用于调试,不需要同步原前后端仓库的更新,用这个方案:
- 进入新仓库根目录,先移除Git对前后端文件夹的缓存:
(替换成你实际的前后端文件夹名称)git rm --cached Front-end Back-end - 删除前后端文件夹里的
.git隐藏目录(这是导致嵌套仓库的核心),Git Bash里执行:rm -rf Front-end/.git Back-end/.git - 重新添加所有文件到新仓库:
git add . - 提交并推送:
推送完成后,GitHub上的前后端文件夹就会变成普通可访问的文件夹。git commit -m "整合前后端代码到仓库" git push origin main
方案2:正确配置Git子模块(保留原仓库关联)
如果之后需要从原前后端仓库拉取更新,就需要正确配置子模块,修正之前的错误操作:
- 清理错误的子模块配置:
进入新仓库根目录,先移除缓存的前后端文件夹:
删除自动生成的git rm --cached Front-end Back-end.gitmodules文件(如果存在):
提交清理操作:rm .gitmodulesgit commit -m "清理错误的子模块配置" - 重新添加子模块:
分别指定前后端原仓库的URL(替换成实际地址):git submodule add <前端原仓库URL> Front-end git submodule add <后端原仓库URL> Back-end - 提交子模块配置并推送:
git add .gitmodules Front-end Back-end git commit -m "添加前后端子模块" git push origin main - 后续克隆仓库时,需要加上
--recurse-submodules参数才能拉取子模块内容:
或者克隆后手动初始化:git clone --recurse-submodules <你的GitHub仓库URL>git submodule init git submodule update
内容的提问来源于stack exchange,提问作者Le Phenix 47
相关产品推荐
相关产品推荐

