如何将dev分支的提交迁移到feature分支并还原dev分支
误提交代码到dev分支的修正操作步骤
前置准备
执行git log查询提交记录,记录两个commit ID:
- 你误提交到dev的提交ID:记为
<wrong_commit_id> - 误提交之前的最后一个正常提交ID:记为
<normal_commit_id>
如果仅存在1次误提交,<normal_commit_id>可以直接用HEAD~1代替,不需要单独查询日志
操作步骤
- 迁移误提交的改动到新功能分支
- 先切换到dev分支,确保本地dev是最新状态:
git checkout dev - 基于当前dev的状态创建新功能分支,此时误提交的改动会自动同步到新分支:
git checkout -b feature_branch - (可选)将新功能分支推送到远程仓库:
git push origin feature_branch
- 回退dev分支到正常版本
- 切回dev分支:
git checkout dev - 执行硬重置丢弃误提交的改动:
git reset --hard <normal_commit_id> - 如果你已经将误提交的内容推送到了远程dev分支,执行强制推送覆盖远程的错误提交:
git push origin dev -f
注意事项
如果dev是多人协作的公共分支,且你误提交的内容已经被其他同事拉取过,不要使用
reset --hard+强制推送的方式,改用git revert <wrong_commit_id>,该命令会生成一个新的提交来抵消误提交的改动,不会修改历史提交线,不会影响其他同事的后续开发。
内容的提问来源于stack exchange,提问作者Santiago Arevalo Gómez
相关产品推荐
相关产品推荐

