How to rollback the two previous commits?

GitGithubReset

Git Problem Overview


Consider this scenario:

  1. Developer A does a commit: #n
  2. Dev. B does commit #n+1
  3. Dev. A does commit #n+2
  4. and commit #n+3

and then discovers that in his commit #n+2 he introduced a defect.

How can dev. A rollback his last 2 commits and continue developing on commit #n+1?

Tried git reset --hard HEAD~2*, but it's coming back to dev A's commit #n.

Git Solutions


Solution 1 - Git

It should come back to the n+1 commit. You probably have a merge commit in there as well. You can also do a git reset --hard <sha1_of_where_you_want_to_be>

> WARNING!! --hard means that any uncommitted changes you currently have > will be thrown away permanently.

Solution 2 - Git

I would suggest using instead something like this:

git reset --soft <commit_hash>

Unless you want it to remove all the changes up to that point, in that case use --hard instead of --soft, it would get you to the desired point in the tree WITHOUT trowing away all of the changes made in the commits.

While I was reading I tried with --HARD and for my misfortune, it removed all my changes up to that point. So, pay attention to whether you want them removed or not.

so, if you are unlucky as me try this! : git revert <commit_hash>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMarius ButucView Question on Stackoverflow
Solution 1 - GitAdam DymitrukView Answer on Stackoverflow
Solution 2 - GitNick CuevasView Answer on Stackoverflow