Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git stash pop- needs merge, unable to refresh index

Tags:

git

git-stash

People also ask

How do I resolve stash merge conflicts?

The stash entry is kept in case you need it again. There's no magic remedy for such merge conflicts. The only option for developers is to edit the file by hand and keep what they want and dispose of what they don't want. Once they merge and save the file, they will have effectively resolved the git stash conflict.

How do I run git stash pop?

To pop Git stashes, simply use the “git stash pop” command and specify the stash index you want to pop.


First, check git status.
As the OP mentions,

The actual issue was an unresolved merge conflict from the merge, NOT that the stash would cause a merge conflict.

That is where git status would mention that file as being "both modified"

Resolution: Commit the conflicted file.


Solution: in this case, simply add and commit your local file.


You can find a similar situation 4 days ago at the time of writing this answer (March 13th, 2012) with this post: "‘Pull is not possible because you have unmerged files’":

julita@yulys:~/GNOME/baobab/help/C$ git stash pop
help/C/scan-remote.page: needs merge
unable to refresh index

What you did was to fix the merge conflict (editing the right file, and committing it):
See "How do I fix merge conflicts in Git?"

What the blog post's author did was:

julita@yulys:~/GNOME/baobab/help/C$ git reset --hard origin/mallard-documentation
HEAD is now at ff2e1e2 Add more steps for optional information for scanning.

I.e aborting the current merge completely, allowing the git stash pop to be applied.
See "Aborting a merge in Git".

Those are your two options.


Here's how I solved the issue:

  • git status (see a mix of files from a previous stash, pull, stash pop, and continued work.)
  • git stash (see the needs merge issue)
  • git add . (add the files so my work locally resolves my own merged)
  • git stash (no error)
  • git pull (no error)
  • git stash pop (no error and continue working)

I was having this issue, then resolving the conflict and commiting, and doing git stash pop again was restoring the same stash again (causing the same conflict :-( ).

What I had to do (WARNING: back up your stash first) is git stash drop to get rid of it.


Its much simpler than the accepted answer. You need to:

  1. Check git status and unmerged paths under it. Fix the conflicts. You can skip this step if you'd rather do it later.

  2. Add all these files under unmerged paths to index using git add <filename>.

  3. Now do git stash pop. If you get any conflicts these will again need to be resolved.