lost git stash changes

时间秒杀一切 提交于 2019-11-28 19:58:03

问题


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.


回答1:


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.




回答2:


We also faced the same issue. So, here is how we recovered the lost changes:

  1. Go back to branch B.

    git checkout B

  2. Use git reflog option to mange reflog information.

    git reflog --all

    Output:

    f332d5c refs/stash@{0}: WIP on B: aa1d0c1 xyz commit message

  3. Now, switch to branch A using git checkout A

  4. Finally, to recover your lost changes.

    git stash apply f332d5c




回答3:


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!