如何将本地已提交的git commit移动到新创建的分支中?
Git操作步骤
你的场景是master分支存在10个未推送的本地提交,需要将这些提交迁移到全新分支留存,同时将master恢复到提交前的版本继续开发,操作流程如下:
1. 前置处理(针对未暂存的修改)
你当前有未提交的改动,根据你的需求选择处理方式:
- 如果要把这些改动放到新分支留存:可以暂存后先提交,也可以直接执行
git stash临时缓存改动 - 如果不需要保留这些改动:可以直接忽略,后续重置操作会自动清空
2. 创建新分支保存本地提交
两种常用操作顺序,选其一即可:
方式一:先创建分支留存,再重置master
# 基于当前master的HEAD创建新分支,不会切换当前分支 git branch <替换为你的新分支名> # 将master分支指针重置到和远程origin/master一致的状态,即10个本地提交之前的版本 git reset --hard origin/master # 如果你之前用stash缓存了要在master上继续开发的改动,执行以下命令恢复 git stash pop
方式二:先切换到新分支确认内容,再重置master
# 创建并切换到新分支,此时新分支已包含所有10个本地提交 git checkout -b <替换为你的新分支名> # 如果要把未暂存改动也存到新分支,在此处执行add、commit即可 git add . git commit -m "补充提交未暂存的改动" # 切回master分支 git checkout master # 重置master到远程版本 git reset --hard origin/master
3. 结果验证
- 执行
git status查看master状态,会提示Your branch is up to date with 'origin/master',代表重置成功 - 执行
git log <新分支名>可以查看所有留存的本地提交,确认内容无缺失
⚠️ 注意:
git reset --hard会清空当前工作区未提交、未缓存的改动,操作前请确认不需要的改动可以丢弃,需要保留的改动已经提交或缓存到stash。
内容的提问来源于stack exchange,提问作者user12411795
相关产品推荐
相关产品推荐

