Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Applying a git stash created with --all

Tags:

git

git-stash

I accidentally created a git stash with the --all option, which, according to the docs,

If the --all option is used instead then the ignored files are stashed and cleaned in addition to the untracked files.

So now restoring my changes with git stash pop fails:

some/ignored/file already exists, no checkout
Could not restore untracked files from stash

(What I actually should have done is use --include-untracked)

git stash show -p still lists my changes, without any ignored files. How can I apply my stash without git trying to restore ignored files?

Edit: I just created a test repository and did a git stash --all. Ignored files were stashed and removed from the file system. My problem is that in my case above, they were stashed, but not removed from the file system, so that seems to be the cause for the problem.

like image 845
amiuhle Avatar asked Oct 15 '25 04:10

amiuhle


1 Answers

Use log to find the commit hash of your stash

$ git log --graph --all --decorate --oneline

All is important because it also shows stashes

It should look similar to this

*-.   cd5e9ae (refs/stash) WIP on master: cd48088 Fixed GET chats output
|\ \  
| | * e48d0d7 untracked files on master: cd48088 Fixed GET chats output
| * 1a3bf97 index on master: cd48088 Fixed GET chats output
|/  
* cd48088 (HEAD, origin/master, master) Fixed GET chats output

Now, you want to checkout the top of the stash (here, it's cd5e9ae)

$ git checkout cd5e9ae

You will be in a detached HEAD state
reset it one step back, keeping the changes

$ git reset HEAD~1

and now stash it like you meant to

$ git stash --include-untracked

Now you can go back to master or wherever you were working and apply that new correct stash

$ git checkout master
$ git stash pop

Inspired by this blog post

I just tested it and it worked in my project with my ignored files, it should work for you as well.

like image 128
Tim Avatar answered Oct 19 '25 13:10

Tim



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!