通过VSCode向GitHub推送时仅推送子目录不推送父目录如何解决
问题解决步骤
核心原因预判
该问题通常由3种常见配置错误导致:
- VSCode当前打开的工作区根目录不是父目录
cryptosinodotgg,而是cryptosino-react-app子目录,因此无法识别同级另一个子目录的变更 cryptosino-solidity子目录下存在独立的.git隐藏文件夹,被Git识别为子模块,父仓库不会追踪其内部文件变更- 父目录的
.gitignore规则匹配到了cryptosino-solidity目录,导致该目录被排除在提交范围外
分步排查修复
步骤1:确认VSCode工作区根目录
- 查看VSCode左侧资源管理器的根目录名称,确认是
cryptosinodotgg而不是cryptosino-react-app。如果根目录是子目录,点击文件-打开文件夹重新选择父目录cryptosinodotgg即可。
步骤2:清理子目录独立Git仓库(如果存在)
- 打开本地
cryptosino-solidity文件夹,开启系统隐藏文件显示权限,查看是否存在.git隐藏文件夹。如果该文件夹存在且你不需要这个子目录独立的版本历史,直接删除该.git文件夹。 - 打开VSCode终端,执行如下命令清除父仓库中已缓存的子模块标记:
git rm --cached cryptosino-solidity
注意命令末尾不要加斜杠,避免报错。
步骤3:检查.gitignore排除规则
打开父目录cryptosinodotgg下的.gitignore文件,检查是否存在匹配cryptosino-solidity的规则,如果有直接删除对应规则行即可。
步骤4:重新提交推送
在VSCode终端执行如下命令,重新提交子目录到远程仓库:
# 将solidity目录所有文件加入暂存区 git add cryptosino-solidity/ # 提交变更 git commit -m "feat: add solidity project files" # 推送到远程主分支(如果你的主分支名是master就替换为master) git push origin main
操作完成后刷新GitHub仓库页面,就能看到完整的父目录和两个子目录文件了。
内容的提问来源于stack exchange,提问作者Kribs
相关产品推荐
相关产品推荐

