threads / discuss / 21133

Can I retrieve changes from deleted stash?

Subject: Can I retrieve changes from deleted stash?

## tl;dr

3 messages between Oct 5, 2009 and Oct 5, 2009.

replies: 2people: 2as markdown or json

Daniel· Oct 5, 2009, 12:05 UTC · lore
I did:

$ git stash $ git pop

$ git checkout -- <modified files>

Now I don't have changes I stashed. I guess the blobs with stashed files should be somewhere? Is there any way I can get back my changes? I tried to use git-reflog, but I'm not sure how can I find the files I need.

Thomas Rast· Oct 5, 2009, 12:30 UTC · re: Daniel · lore

Re: Can I retrieve changes from deleted stash?

Daniel wrote:
Show 11 quoted lines
> I did:
> 
> $ git stash
> $ git pop
> 
> $ git checkout -- <modified files>
> 
> Now I don't have changes I stashed. I guess the blobs with stashed
> files should be somewhere?  Is there any way I can get back my changes?
> I tried to use git-reflog, but I'm not sure how can I find the files
> I need.

The problem is that the stash itself is a reflog, so there is no extra safety layer.

Recent versions of the git-stash(1) manpage[*] document a command that helps find the stashes: if you do not explicitly name them, the they will be called "WIP on <subject>" and can thus be found with

  git fsck --unreachable |
  grep commit | cut -d\  -f3 |
  xargs git log --merges --no-walk --grep=WIP
[*] you can find a bleeding edge version at
  http://www.kernel.org/pub/software/scm/git/docs/git-stash.html
-- 
Thomas Rast
trast@{inf,student}.ethz.ch
mjucde· Oct 5, 2009, 12:50 UTC · re: Thomas Rast · lore

Re: Can I retrieve changes from deleted stash?

Thomas Rast <trast@student.ethz.ch> wrote:
Show 33 quoted lines
> Daniel wrote:
> > I did:
> > 
> > $ git stash
> > $ git pop
> > 
> > $ git checkout -- <modified files>
> > 
> > Now I don't have changes I stashed. I guess the blobs with stashed
> > files should be somewhere?  Is there any way I can get back my changes?
> > I tried to use git-reflog, but I'm not sure how can I find the files
> > I need.
> 
> The problem is that the stash itself is a reflog, so there is no extra
> safety layer.
> 
> Recent versions of the git-stash(1) manpage[*] document a command that
> helps find the stashes: if you do not explicitly name them, the they
> will be called "WIP on <subject>" and can thus be found with
> 
>   git fsck --unreachable |
>   grep commit | cut -d\  -f3 |
>   xargs git log --merges --no-walk --grep=WIP
> 
> 
> [*] you can find a bleeding edge version at
> 
>   http://www.kernel.org/pub/software/scm/git/docs/git-stash.html
> 
> -- 
> Thomas Rast
> trast@{inf,student}.ethz.ch
> 
Thanks, that did the trick :)

← back to recent threads