Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a local git repository and had several modified files. Then I needed to quickly produce a fix for something so I

  • stashed my changes (git stash)
  • edited file (vi file)
  • committed (git commit)
  • popped stash (git stash pop)

This resulted in Conflict.

# On branch master
$ git stash pop
Auto-merging page/search.php
CONFLICT (content): Merge conflict in page/search.php
$ git status
# On branch master
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      page/search.php

If I try to cleanup the changes and re-apply stash, the same thing happens (conflict). I do not care much about the page/search.php, but I would like to get other files out from the stash.

Is there a way to convert stash into a patch or simply get the files as they were when stashed?

share|improve this question
add comment

2 Answers

up vote 7 down vote accepted

The stash has already been applied to other files; it is only page/search.php that you have to merge manually. Afterwards just run git reset to unstage the changes and keep on hacking – or git add ... and commit.

share|improve this answer
    
Yes. Exactly. After i recovered the patch with -p, I found out that other files are already updated. –  romaninsh Jan 17 '12 at 16:25
    
very nice, git stash pop, resolve your conflicts then git add x then git reset to get it out of staging, Thanks! –  Quang Aug 21 '12 at 4:33
    
@Quang There should be a stash pop --continue which aliases to reset. :) –  Kaz Oct 11 '13 at 0:52
add comment

Resolved with:

git stash show -p
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.