如何将非空项目目录转为Git工作目录并推送到指定远程分支
解决方法:将本地内容推送到Git远程指定分支而非master
嘿,我来帮你梳理清楚~你的思路方向是对的,但操作里有两个关键细节没做好,导致没法顺利推到目标分支branch1上,我给你拆解下问题和正确步骤:
你当前尝试的命令存在的问题
- 没有切换到新创建的分支:
git branch <branch1>只是创建了分支,但你当前仍处于master分支,后续的git add .和git commit其实是把内容提交到了master,而非branch1。 - 第一次推送未指定远程分支关联:就算切换到了
branch1,直接git push会失败——因为远程仓库还没有branch1这个分支,Git不知道要把本地分支推送到远程哪个位置。
正确的操作步骤
假设你现在还在master分支(可以用git branch命令确认,带*的就是当前分支),按照以下步骤操作:
创建并切换到目标分支(二选一即可,第二种更高效)
- 方式一:先创建再切换
git branch branch1 git checkout branch1 - 方式二:创建并直接切换(Git 2.23及以上版本可用更直观的命令)
# 旧版命令 git checkout -b branch1 # 新版推荐命令 git switch -c branch1
- 方式一:先创建再切换
添加并提交本地文件
git add . git commit -m "commit to branch1" # 注意你原来的拼写"commint"是笔误,要改成"commit"哦推送到远程分支并建立关联
第一次推送新分支时,必须指定远程仓库和分支名,加上-u参数可以把本地branch1和远程branch1关联起来,后续再推送就直接用git push即可:git push -u origin branch1
额外补救:如果已经在master上提交了内容
要是你已经不小心在master上完成了提交,想把这些提交转移到branch1上,可以这么做:
- 切换到
branch1分支:git checkout branch1 - 把
master上的提交复制过来:git cherry-pick master - 回到
master分支撤销错误的提交:git checkout master git reset --hard HEAD~1注意:
git reset --hard会彻底删除master上的这次提交,确认不需要保留再执行!
内容的提问来源于stack exchange,提问作者A191919
相关产品推荐
相关产品推荐

