git wip
TL;DR
Put this in the [alias]
section of your ~/.gitconfig
:
wip = !git add -A && git commit -m "WIP"
Now you can git wip
instead of git stash
. All changes to the working tree
are recorded in a proper commit. When you’re ready to resume work, just do a
git reset HEAD^
.
Background
git stash
is sometimes convenient, but the feature has some drawbacks.
- It’s easy to forget that you have something stashed
- Pushing multiple stashes on the stack doesn’t seem useful
- Untracked files are not stashed away
Storing all changes as a WIP commit is a simple way to leverage the “normal” git workflow to build a more powerful stashing feature.
Credit
I learned this trick, and several others, here.