如何将本地多个已提交未推送的Git commit迁移至新分支
可行,以下是最高效的本地操作方法
完全可以实现你的需求,操作步骤简单且安全,具体如下(假设你当前在原分支,比如main或master):
创建包含未推送commit的新分支
运行命令:git checkout -b 新分支名称比如你可以命名为
local-unpushed-commits,这条命令会直接创建新分支并切换过去,此时新分支已经包含了那10个本地未推送的commit。切换回原分支并重置到远程同步状态
先切回原分支:git checkout 原分支名称然后将原分支重置到和远程仓库完全一致的状态(即去掉那10个未推送的commit):
git reset --hard origin/原分支名称(比如原分支是
main,就用git reset --hard origin/main)注意:
--hard参数会清除原分支上所有未提交的本地修改,但你的10个commit已经被迁移到新分支,所以不会丢失。执行前可以用git log origin/原分支名称..HEAD确认本地比远程多的commit数量确实是10个,避免误操作。后续联网后的推送操作
等可以联网时,切换到新分支:git checkout 新分支名称然后推送到远程仓库:
git push origin 新分支名称这样远程仓库就会创建这个新分支,并同步那10个commit。
内容的提问来源于stack exchange,提问作者g.pickardou
相关产品推荐
相关产品推荐

