Pull is not possible because you have unmerged files, git stash doesn't work. Don't want to commit

119,927

Solution 1

You can use git checkout <file> to check out the committed version of the file (thus discarding your changes), or git reset --hard HEAD to throw away any uncommitted changes for all files.

Solution 2

git fetch origin
git reset --hard origin/master
git pull

Explanation:

  • Fetch will download everything from another repository, in this case, the one marked as "origin".
  • Reset will discard changes and revert to the mentioned branch, "master" in repository "origin".
  • Pull will just get everything from a remote repository and integrate.

See documentation at http://git-scm.com/docs.

Solution 3

I've tried both these and still get failure due to conflicts. At the end of my patience, I cloned master in another location, copied everything into the other branch and committed it. which let me continue. The "-X theirs" option should have done this for me, but it did not.

git merge -s recursive -X theirs master

error: 'merge' is not possible because you have unmerged files. hint: Fix them up in the work tree, hint: and then use 'git add/rm ' as hint: appropriate to mark resolution and make a commit, hint: or use 'git commit -a'. fatal: Exiting because of an unresolved conflict.

Solution 4

I've had the same error and I solve it with: git merge -s recursive -X theirs origin/master

Share:
119,927

Related videos on Youtube

JZ.
Author by

JZ.

go engineer @easypost.

Updated on July 09, 2022

Comments

  • JZ.
    JZ. almost 2 years

    I just want to pull. I have changes to disregard, my Gemfile and Gemlock files and I'd be happy to just overwrite them and just pull. I tried stashing my changes away, this didn't work out for me. What do I do?

    git pull
    M   Gemfile
    U   Gemfile.lock
    Pull is not possible because you have unmerged files.
    Please, fix them up in the work tree, and then use 'git add/rm <file>'
    as appropriate to mark resolution, or use 'git commit -a'.
    ~/projects/sms/apps2/apps2_admin(apps2)$ git stash save "saved"
    Gemfile.lock: needs merge
    Gemfile.lock: needs merge
    Gemfile.lock: unmerged (4ea16799dba7bfe1db28adecf36dee1af5195c1a)
    Gemfile.lock: unmerged (e77439c9f86d1d0eda7ae0787e3e158f90959e68)
    Gemfile.lock: unmerged (d690d3860db1aa8e46c1bb2f4de3e52a297b5c26)
    fatal: git-write-tree: error building trees
    Cannot save the current index state
    ~/projects/sms/apps2/apps2_admin(apps2)$ git pull
    M   Gemfile
    U   Gemfile.lock
    Pull is not possible because you have unmerged files.
    Please, fix them up in the work tree, and then use 'git add/rm <file>'
    as appropriate to mark resolution, or use 'git commit -a'.
    
  • Chemist
    Chemist over 9 years
    What does this do exactly?
  • Ricardo Peres
    Ricardo Peres over 9 years
    Fetch will download everything from another repository, in this case, the one marked as "origin". Reset will discard changes and revert to the mentioned branch, "master" in repository "origin". Pull will just get everything from a remote repository and integrate. See documentation at git-scm.com/docs.