Git undo merge attempt

GitGit MergeGit Pull

Git Problem Overview


I have working directory (#1) which has vendor directory(#2) in it. There is one dependency which I wanted to pull manually without composer (php version of npm/gem). I was working in #1, haven't saved/commited changes, when I decided I want to update library in #2. I navigated to vendor/myname, and did git pull repository.

Unfortunately it started to pull and merge to #1, instead of creating new directory in vendor folder.

Now I have:

  • #1 folder with my changes
  • #1 folder with files I don't want from wrong repository
  • #1 merge conflicts such as composer.json, Readme.md... (general files)

I want to "undo" this last git pull without loosing any changes I did to folder #1. How can I do this?

Git Solutions


Solution 1 - Git

git merge --abort might be what you're looking for.

Solution 2 - Git

Modern Git:

git merge --abort

Older:

git reset --merge

Old-school (warning: will discard all your local changes):

git reset --hard

But actually, it is worth noticing that git merge --abort is only equivalent to git reset --merge given that MERGE_HEAD is present. This can be read in the git help for merge command.

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

After a failed merge, when there is no MERGE_HEAD, the failed merge can be undone with git reset --merge but not necessarily with git merge --abort, so they are not only old and new syntax for the same thing. Personally I find git reset --merge much more useful in everyday work.

Solution 3 - Git

With Git 2.10 (Q3 2016), you will know what to do, because git status will propose the git merge --abort option.

See commit b0a61ab (21 Jul 2016) by Matthieu Moy (moy).
(Merged by Junio C Hamano -- gitster -- in commit 5a2f4d3, 03 Aug 2016)

> ## status: suggest 'git merge --abort' when appropriate > > We already suggest 'git rebase --abort' during a conflicted rebase.
Similarly, suggest 'git merge --abort' during conflict resolution on 'git merge'.

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
QuestionewooycomView Question on Stackoverflow
Solution 1 - GitaragaerView Answer on Stackoverflow
Solution 2 - GitMartin GView Answer on Stackoverflow
Solution 3 - GitVonCView Answer on Stackoverflow