Dzhavat Ushev

Twitter GitHub RSS

Tip: Stashing selected files in git

One of my favorite git commands is git stash. I use it all the time. I like how it helps me clean my working directory but still save my work for later.

One downside of using git stash, though, is that it stashes away all files. What I need in some cases is to stash only a few selected files or a single directory. I’ve needed this in several occasions but never really tried to research it (yeah, call me lazy).

Until a couple of days ago - that’s how stories unfold - when I finally visited the official docs for stash! I found an option called <pathspec>. This option can be used with the push command to specify a path. Git will then stash all files that match the path.

How does it look in practice? Say I have the following files in my working directory:

js/custom.js
css/custom.css

Here are a few use cases I might have:

# to stash just the `custom.js` file
git stash push js/custom.js

# to stash the `custom.js` file with a custom message
git stash push js/custom.js -m "Best feature ever"

# to stash only the files in the `js` directory
git stash push js/

I’m quite happy about discovering this. I’ll definitely use it in my work. Hope you learned something new today as well. 😉

P.S. I’ve created a Git Cheatsheet extension for VS Code that can help you with remembering some common git commands.

Share on Twitter