简体   繁体   中英

Git: restore diverged repository after failed rebase

I ran a git pull --rebase , and aborted this after fixing several merge-conflicts using git rebase --abort .

Before the attempted rebase, git status told me: "Your branch is ahead of 'origin/master' by 20 commits." Now I get: "Your branch and 'origin/master' have diverged, and have 15 and 5 different commit(s) each, respectively."

I have already done a reset to the latest commit ( git reset --hard c15...e30 ), but the status message is still the same.

How do I revert my repository to the state is was before I started the mess? And what is the difference between the current state and the previous?

Thanks.

The git rebase --abort should have taken you back to your original HEAD. I'm not sure what you meant by "fixing several merge-conflicts using ... abort". Did you mean --continue ?

Anyway, the thing to do now is consult the reflog. The reflog is a local, temporal log of where all of your references have been. If you look at .git/logs/HEAD you can see where HEAD (the working set) has been. Under .git/logs/refs/... you can see where all of your branches (local and remote) have been. Each line in the log reflects some action. The starting SHA, ending, user, time, and a string describing what action caused the change. You can find the one you want and reset back to it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM