I use branches a lot when using Git, and the problem there is that Git usually complains if I wish to change branches, while I still have uncommitted changes in my current branch. Therefore the "stash" command is for me very valuable.
Stash your current uncommitted changes:
$ git stash
Get your uncommitted changes back from the stash:
$ git stash apply
Get a list of your current stashes:
$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log
Remove a no longer needed stash:stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log
$ git stash drop stash@{0}
Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)
One command I particularly like is this one that does both an apply of your stash and once done automatically removes it from the list of stashes:Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)
git stash pop
The stash has a lot of similarities to your standard Stack implementation (or Dequeue, depending on your point of view.)
I notice that if I do not clean up the place or use the "pop" subcommand, that my list of stashes tends to grow quite long unobtrusively.
View a stash without applying:
git stash show
Actually showing the contents of the stash in diff format is:
git stash show -p
The commands above work on the latest stash in your list.
References
- 6.3 Git Tools - Stashing
- https://git-scm.com/book/en/v1/Git-Tools-Stashing
- Atlassian Tutorials - Git Stash
- https://www.atlassian.com/git/tutorials/git-stash
- Ariejan De Vroom - GIT: Using the stash
- https://ariejan.net/2008/04/23/git-using-the-stash/
- Git Stash - Man Page
- https://git-scm.com/docs/git-stash
Update: added the showing of stashes without applying.
No comments:
Post a Comment