I ran into a merge conflict. How can I abort the merge?
git pull and had a merge conflict:
unmerged: _widget.html.erb You are in the middle of a conflicted merge.
I know that the other version of the file is good and that mine is bad so all my changes should be abandoned. How can I do this?
pull was unsuccessful then
HEAD^) is the last "valid" commit on your branch:
git reset --hard HEAD
The other piece you want is to let their changes over-ride your changes.
Older versions of git allowed you to use the "theirs" merge strategy:
git pull --strategy=theirs remote_branch
git fetch origin git reset --hard origin
Read more... Read less...
If your git version is >= 1.6.1, you can use
git reset --merge.
Also, as @Michael Johnson mentions, if your git version is >= 1.7.4, you can also use
git merge --abort.
As always, make sure you have no uncommitted changes before you start a merge.
From the git merge man page
git merge --abort is equivalent to
git reset --merge when
MERGE_HEAD is present.
MERGE_HEAD is present when a merge is in progress.
Also, regarding uncommitted changes when starting a merge:
If you have changes you don't want to commit before starting a merge, just
git stash them before the merge and
git stash pop after finishing the merge or aborting it.
git merge --abort
Abort the current conflict resolution process, and try to reconstruct the pre-merge state.
If there were uncommitted worktree changes present when the merge started,
git merge --abortwill in some cases be unable to reconstruct these changes. It is therefore recommended to always commit or stash your changes before running git merge.
git merge --abortis equivalent to
git reset --mergewhen
Its so simple.
git merge --abort
Git itself shows you the solution when you are in this type of trouble and run the git status command.
Hope this will help people.
I think it's
git reset you need.
git revert means something very different to, say,
svn revert - in Subversion the revert will discard your (uncommitted) changes, returning the file to the current version from the repository, whereas
git revert "undoes" a commit.
git reset should do the equivalent of
svn revert, that is, discard your unwanted changes.
For scenario like, I did
git fetch and
git pull, then realized that upstream branch was not master branch, which resulted in unwanted conflicts.
git reset --merge
This reverted back without resetting my local changes.