== Reset branch to a previous state
Accidentally committing changes in a wrong branch can happen. For
example you may switch between several branches, forget to checkout
the branch in which you plan to continue your work and then commit in
a wrong branch. Resetting the wrongly updated branch to its previous
state is the topic of this exercise.

Suppose you want to fix the warning for the unused 'serialVersionUID'
field in the SWT 'CalculatorUI' class
('org.eclipse.example.calc.internal.ui.swt.CalculatorUI'). You create
a new local branch for this purpose 'fixWarnings'. However, let’s
pretend that you forgot to checkout the 'fixWarnings' branch.
Instead you are on the 'addDivideOperation'.

* Checkout the 'addDivideOperation' branch
* Create a new branch called 'fixWarnings' based on the
  'origin/master' branch but make sure the 'checkout new branch'
  checkbox is deselected. The new branch gets created but the
  'addDivideOperation' branch is still checked out.
+
image:create-branch-3.png[Create Branch]

* Remove the field 'serialVersionUID' from
  'org.eclipse.example.calc.internal.ui.swt.CalculatorUI'. Commit the
  changes. This updated the 'addDivideOperation' branch.
* Realize that you committed changes in a wrong branch. Don’t panic.
* Reset the 'addDivideOperation' branch back to its previous state but
  keep the changes in the working tree:
** Using the History View find the parent commit of the tip of the
  'addDivideOperation' branch and select 'Reset > Mixed' from the
   context menu:
+
image:history-view-7.png[History View]

** The 'addDivideOperation' branch is reset back to its previous state
   and doesn’t contain the commit that fixed the warning anymore.
** However, the fix for the warning is still in the working tree!
* Checkout the correct branch, the 'fixWarnings' branch
* The changes are still in the working tree. Commit the changes.

'Q:' What if you realized that you are on a wrong branch before
committing the changes in the wrong branch?

link:index.html[Git Exercises]
