This is how I git
>Never stash<p>Er, no. Right tool for the right job.<p>Whilst I agree that the idea of putting differing lines of work into different branches is great, that's not what stash is for. That's what checkout is for.<p>Stash is used to record the current state of the working directory and index while also returning to a clean working state.<p>I guess for the author, stash is used to preserve changes when pulling in upstream changes you missed. It can, but it does waaaay more.<p>What happens if, like many people, you're working on a few branches at a time. Could be a monorepo, could be a couple long living branches, w/e. What do you do if you've done work against a branch and want to lift and shift to another branch?<p>You could commit and rebase and all sorts of clever mangling of the history.<p>OR you could use the right tool for the job<p>---<p>Follow up<p>[0] <a href="https://medium.com/@yankee.exe/mastering-git-stash-workflow-a310313ca7b6" rel="nofollow">https://medium.com/@yankee.exe/mastering-git-stash-workflow-...</a><p>[1] <a href="https://git-scm.com/book/fa/v2/Git-Tools-Stashing-and-Cleaning" rel="nofollow">https://git-scm.com/book/fa/v2/Git-Tools-Stashing-and-Cleani...</a>