如何将本地内容推送到Git仓库master分支下指定的proiect文件夹
Git推送本地内容到远程仓库指定子目录解决方案
错误原因说明
你之前操作的问题核心是本地提交的内容直接放在本地仓库根目录,推送后会和远程仓库根目录下已有的proiect文件夹同级,只需要调整提交的目录层级即可解决。
注:你步骤中写的
git add masterURL属于笔误,实际应为绑定远程仓库的命令git remote add origin <远程仓库地址>,以下操作默认你已完成远程仓库绑定。
方案1:调整本地目录结构推送(新手友好,操作最简单)
适合首次提交、可以改动本地文件布局的场景:
- 如果你本地已经执行过
git init生成了错误的提交记录,先删除本地的.git隐藏文件夹重置状态:- Windows系统直接在文件管理器开启「显示隐藏文件」后删除该文件夹
- Linux/Mac系统执行命令:
rm -rf .git
- 在本地你要上传的所有文件的同级位置,新建名为
proiect的文件夹,把所有要推送的本地文件全部移入该文件夹 - 依次执行以下命令完成推送:
git initgit remote add origin <替换为你的远程仓库地址>- 拉取远程master分支最新内容,避免文件冲突:
git pull origin master - 只添加
proiect目录下的变更:git add proiect/ - 提交变更:
git commit -m "提交内容到proiect目录" - 推送到远程master分支:
git push -u origin master
方案2:不改动本地目录结构推送
适合不想修改本地原有文件布局的场景,可通过git subtree实现:
- 先把本地当前内容提交到临时分支:
git checkout -b tempgit add .git commit -m "临时提交本地内容"
- 切回master分支合并内容到指定目录:
git checkout mastergit pull origin master- 将临时分支的内容合并到master分支的
proiect目录下:git subtree add --prefix=proiect temp master
- 推送到远程仓库:
git push origin master - 可选操作:删除本地临时分支:
git branch -D temp
注意事项
如果远程proiect目录已有存量内容,推送前必须先执行git pull origin master拉取最新内容,避免覆盖原有文件产生冲突。
内容的提问来源于stack exchange,提问作者user16321566
相关产品推荐
相关产品推荐

