推送到GitHub的文件夹无法点击,请问操作哪里有误如何解决?
问题原因
你本地需要上传的文件夹本身包含.git隐藏目录,属于独立的Git仓库。执行git add .时,外层仓库不会收录该文件夹的内部内容,只会将其标记为子模块引用,推送到GitHub后就会显示为不可点击的灰色条目。
操作存在的问题
- 执行
git init初始化仓库前,未检查子目录下是否存在独立的Git仓库 - 执行
git add .时未留意控制台输出的子模块相关提示
解决方案
根据你的实际需求选择对应方案:
方案一:不需要保留子文件夹的Git提交历史,仅上传文件内容
- 删除目标子文件夹内的
.git隐藏目录(Windows系统需先开启隐藏项目可见权限,macOS/Linux系统可通过ls -a命令查看隐藏目录) - 从外层仓库的Git缓存中移除错误添加的子模块引用,将命令中的
<子文件夹名称>替换为你实际的文件夹名:
git rm --cached <子文件夹名称>
- 重新添加子文件夹的全部内容:
git add <子文件夹名称>
- 提交修改后重新推送即可:
git commit -m "修复子文件夹无法访问问题" git push origin master
方案二:需要保留子文件夹的Git提交历史,作为子模块正常使用
- 在外层仓库根目录执行以下命令完成子模块注册,替换对应占位符:
git submodule add <子文件夹对应的远程仓库地址> <子文件夹名称>
- 提交子模块配置文件和引用信息后推送:
git add .gitmodules <子文件夹名称> git commit -m "添加子模块" git push origin master
配置完成后GitHub上的该文件夹会变为可点击状态,点击后会跳转至对应的子模块仓库地址。
内容的提问来源于stack exchange,提问作者Tharun
相关产品推荐
相关产品推荐

