本地branch-A超前origin/branch-A12个提交,该如何修复?
解决本地分支比远程多12个提交的问题
首先先搞清楚这12个提交到底是什么,别直接硬重置,避免误删有用变更:
- 运行
git log --oneline origin/branch-A..branch-A,这个命令会列出本地branch-A比远程origin/branch-A多的所有提交,通过提交信息就能明确这些提交的来源。
根据提交的具体情况,分三种场景处理:
场景1:这些提交已合并到branch-B,无需留在本地branch-A
如果确认这12个提交就是你合并到branch-B的内容,本地branch-A不需要保留这些提交:
- 先拉取远程最新分支信息:
git fetch origin - 执行硬重置,将本地
branch-A完全同步到远程版本:git reset --hard origin/branch-A
注意:这个操作会清除本地
branch-A上所有未提交的修改,执行前务必用git status确认没有未保存的变更。
场景2:这些提交是有效变更,需要推送到远程branch-A
如果查看后发现这些是你需要保留的新提交,只是之前未推送到远程:
直接执行推送命令:git push origin branch-A
如果推送时提示冲突,先拉取远程分支合并:git pull origin branch-A,解决冲突后再重新推送。
场景3:这些提交是误操作产生,想温和撤销(不想硬重置)
如果本地还有未提交的内容,不想用硬重置丢失数据,可以用交互式变基删除不需要的提交:
- 运行
git rebase -i origin/branch-A - 在弹出的编辑界面里,把不需要的提交前面的
pick改成drop - 保存退出即可完成撤销。
内容的提问来源于stack exchange,提问作者flash
相关产品推荐
相关产品推荐

