So here's what happened: I was on a branch 'A' and did a Git stash on that branch. Then I switched to another branch 'B'. I navigated back to Branch 'A' but did not do a Git stash pop. I switched to the master branch and then back to branch 'A'. I am trying to go a git stash pop now but cant seem to get my changes back.. I need to recover that code but whenever I do a git stash pop, my file changes are not listed. I did not commit any code.
Is there a way to recover the changes that I made? would really appreciate any help in this regards.
Stashes should be viewable via
git stash list
or
gitk --all
also, git stash does not stash untracked files. If you did this and subsequently did a git checkout --force of another branch to overwrite untracked files with tracked ones in another branch, you have lost that content. The recommended way to stash is with
git stash -u
This will prevent losses of this type.
We also faced the same issue. So, here is how we recovered the lost changes:
Go back to branch B.
git checkout B
Use
git reflogoption to mange reflog information.git reflog --all
Output:
f332d5c refs/stash@{0}: WIP on B: aa1d0c1 xyz commit message
Now, switch to branch A using
git checkout AFinally, to recover your lost changes.
git stash apply f332d5c
Something similar happened to me. In short, check to make sure you didn't accidentally push the new files to the other branch.
Here's what happened to me: I stashed my stuff, switched from 'dev' to 'master' to do a hotfix quick. When I pushed my hotfix to master, I didn't notice that I also added my new files that were meant for dev to the master branch--I too assumed stash included those files.
来源:https://stackoverflow.com/questions/12147042/lost-git-stash-changes