1

背景描述

当前master分支,小明和小王在中午12点分别新建了a b 分支

1.小明在a分支,下午 1 3 5点分别提交了四个commit
2.小王在b分支,下午 2 4 6点分别提交了四个commit
3.小明在a分支,在下午7点执行了git merge b,此时commit的顺序是1 2 3 4 5 6倒序,但是此时发现merge了错误分支,想回退到下午7点时的没merge的状态,即1 3 5commit状态,如何优雅的进行git回退操作?

已知git cherry-pick 解决方案,有没有更好的方法?

2017-09-07 提问
3 个回答
2

已采纳

没push的话
git reset --hard (a分支5点那个时候commit之后的sha1)
然后重新 git merge

4

如果没有别的操作,直接回到上一次提交就可以了,在a分支执行
git reset --hard HEAD~ 会回到未merge前的状态,清空暂存区,销毁数据,如果没有推送到远程,数据就会被覆盖无法恢复,如果已推送远程,可以通过 reflog 找回。

3

先查看更新的版本日志

git reflog

回退到某一个版本

git reset --hard 版本号

撰写答案

推广链接