Undo "Reset current branch to this commit"
Asked by lmiguelmh:

I am new with this tool, I've never used GIT neither.

I had a merge conflict... so I was messing with SourceTree and I did a **hard "reset current branch to this commit"** and ended with my code resetted and all my changes lost.

image2014-11-24 23:23:42.png

Is there a way that I could revert or undo this?

Thanks a lot.  
[](https://community.atlassian.com/t5/Sourcetree-questions/Undo-quot-Reset-current-branch-to-this-commit-quot/qaq-p/340956?attachment-id=9460){#link_116ad4bec9bd34}  
[](/tnckb94959/attachments/tnckb94959/sourcetree-questions/10185/1/image2014-11-24%2023%3A23%3A42.png){#display_116ad4bec9bd34_0}


Answers:
author: TimP
body: Hi Im,

Don't panic! Losing work sucks, but there absolutely is a way to recover any previously committed changes :smile: Fortunately git is pretty good about not losing things, even if you've done a hard reset.

You'll need to use a git built-in tool called the `reflog`. Sourcetree doesn't yet support it, so you'll need to open your repository from the command line (and install git, if you haven't already).

Once you're in your repository, run the command `git reflog` to show a list of ref updates that you've made to your local repository. If the "reset" is the last change you made, it should look something like this:

```
$ git reflog
```

```
62eda16?HEAD@{0}: reset: moving to 62eda16
```

```
badcafe HEAD@{1}: blah blah blah
```

```
abc1234?HEAD@{2}: something something
```

You'll want to reset your branch (again) to the commit that it was pointing at *before* you ran the reset command. In the above example reflog output, this would be `HEAD@{1}` (`badcafe`). You can do this by running:

```
$ git reset badcafe
```

Hope this helps!

cheers,

Tim

comments: author: Seth
body: Great advice. I just wanted to emphasize that any COMMITTED work has not been lost. If you had anything uncommitted (unlikely, since you said you were working on a merge), then it will have to be recreated.In the future, a "mixed" reset is safer, because it will reset your branch to the selected commit, but it will make no changes to your working copy.


author: TimP
body: Excellent point @Seth. There is some \[dark magic\|<http://www.reddit.com/r/git/comments/2byaww/ok_i_really_screwed_up_i_did_a_git_rm_f_on_an/>\] you can use if the work was added to the index but not committed too, although it's not quite as straight forward as a reset.


author: lmiguelmh
body: Thanks a lot for your answers... and I am sorry to say that none of my changes were committed and neither added to GIT... So I think I will have to try to recover the files from disk (if they were not rewritten) and surely I will have a long long night... Again, thanks a lot.


author: christiaan.net
body: I love u! I thought I lost 2 days of work....


author: byiddish
body: Thank you so much!!!

You saved me 2 weeks of work!


author: ahmarcusjo@gmail.com
body: I owe you for this..Big time!


author: Davor Pozni?
body: Thank you. You just saved me from a lot of troubles. I owe you a beer.


author: eyesofjeremy
body: Thank you so much --- this just helped me out too!


author: serhii_k
body: Thank you so much!


author: jauseg
body: wow! it is not only helped me to restore my changes but make me better understand how the git works. thanks!