I have a branch A and a branch B (and some other branches).
Lets say A's commit history looks like:
And B's commit history:
Basically what I want is to "delete" all changes made by the commits some other commit and merge of other stuff from branch C to branch B.
I want the working tree of branch B to be exactly the same like branch A's working tree.
How do I achieve this?
One way to achieve this is through git reset
. While on branch B
execute
git reset --hard A
Thereafter, branch B
points to the head-commit of A
. The --hard
option resets the index and working tree so that all tracked files are reset to the version in branch A
. The old HEAD commit-ID of A
is stored in .git/ORIG_HEAD
in order to allow undoing the change.
Alternatively - while not on branch B
- you can delete branch B
and re-created it like this:
git branch -d B # delete branch B
git branch B A # re-create branch B and let it point to the commit of branch A
Other than the first suggestion, this will leave the index and working tree untouched.