为何使用git push无法将全部项目文件提交至GitHub?
解决git提交仅上传少量文件且status显示外层目录内容的问题
问题根源
从你提供的git status输出可以看到,所有变更文件都是../或../../../../开头,这说明你当前执行git命令的目录(xyz)并不是git仓库的根目录——git仓库实际是在更上层的目录初始化的,导致xyz文件夹里的文件根本没被纳入这个仓库的跟踪范围,自然无法提交到GitHub。
解决步骤
确认当前git仓库的根目录
执行以下命令,查看当前git仓库的绝对路径:git rev-parse --show-toplevel输出的路径肯定不是xyz文件夹的路径,而是上层某个目录。
清理错误仓库并重新初始化
- 先删除上层误创建的git仓库(如果这个仓库是无用的):
切换到那个仓库根目录,执行:rm -rf .git - 回到xyz文件夹,重新初始化独立的git仓库:
cd /path/to/xyz # 替换成你的xyz文件夹实际路径 git init git add . git commit -m "Initial commit: add all files in xyz" git remote add origin https://github.com/你的用户名/你的仓库名.git # 替换成你的GitHub仓库地址 git push -u origin main
- 先删除上层误创建的git仓库(如果这个仓库是无用的):
如果上层仓库有用,保留并单独处理xyz
若上层的git仓库是其他项目的仓库,需要将xyz作为独立仓库:- 检查xyz文件夹内是否有嵌套的
.git目录,若有则删除:rm -rf xyz/.git - 进入xyz文件夹,执行上述的
git init、git add .等步骤,关联新的GitHub远程仓库即可。
- 检查xyz文件夹内是否有嵌套的
注意事项
- 执行git命令前,用
pwd确认当前目录,确保和git rev-parse --show-toplevel的输出一致,保证在正确的仓库根目录操作。 - 提交前再次执行
git status,确认跟踪的是xyz文件夹内的文件,而非外层的系统文件或其他项目文件。
内容的提问来源于stack exchange,提问作者Kevin Grant
相关产品推荐
相关产品推荐

