如何将单个文件夹下的多个Cargo项目通过Git Push到GitHub仓库?
解决方案
你的判断完全正确——错误根源就是每个Projectx目录下都有独立的.git文件夹,Git会将这类目录识别为未配置的子模块候选,直接执行git add .就会触发报错。根据你的需求,有两种最佳处理方式:
方式一:将所有项目合并到同一个主仓库
如果不需要每个Projectx保持独立Git仓库,只想把所有文件统一放到projects仓库下:
- 逐个进入每个
Projectx目录,删除内部的.git文件夹:# Linux/macOS rm -rf Project1/.git rm -rf Project2/.git # 重复操作到Project5# Windows rmdir /s /q Project1\.git rmdir /s /q Project2\.git # 重复操作到Project5 - 回到
projects目录,初始化主仓库(若未初始化):git init - 正常执行提交和推送流程:
git add . git commit -m "Add all Rust projects" git remote add origin <你的GitHub仓库地址> git push -u origin main
方式二:用Git子模块管理独立项目
如果需要保留每个Projectx的独立Git仓库,同时在projects目录统一管理它们:
- 先确保每个
Projectx已经推送到各自的GitHub仓库(进入单个项目目录完成git init、git add .、git commit、git remote add origin、git push流程) - 回到
projects目录,初始化主仓库:git init - 逐个添加子模块:
git submodule add <Project1的GitHub仓库URL> Project1 git submodule add <Project2的GitHub仓库URL> Project2 # 重复操作到Project5 - 提交子模块配置并推送:
git add .gitmodules Project1 Project2 Project3 Project4 Project5 git commit -m "Add submodules for all projects" git remote add origin <projects主仓库的GitHub地址> git push -u origin main
注意:拉取这个主仓库时,需要加上
--recurse-submodules参数,或者拉取后执行git submodule update --init --recursive来同步所有子模块内容。
内容的提问来源于stack exchange,提问作者Andres
相关产品推荐
相关产品推荐

