Added 'git stash'!

This commit is contained in:
LOZORD 2014-11-24 19:32:40 -06:00
parent 8d76e20278
commit 3a8b9f0fc5

View File

@ -334,6 +334,55 @@ $ git push -u origin master
$ git push
```
### stash
Stashing takes the dirty state of your working directory and saves it on a
stack of unfinished changes that you can reapply at any time.
```bash
# Let's say you've been doing some work in your git repo, but you want to pull from the remote.
# Since you have dirty (uncommited) changes to some files, you are not able to run 'git pull'.
# Instead, you can run 'git stash' to save your changes onto a stack!
$ git stash
Saved working directory and index state \
"WIP on master: 049d078 added the index file"
HEAD is now at 049d078 added the index file
(To restore them type "git stash apply")
# Now you can pull!
git pull
# ...changes apply...
# Now check that everything is OK
$ git status
# On branch master
nothing to commit, working directory clean
# You can see what 'hunks' you've stashed so far:
# Since the 'hunks' are stored in a Last-In-First-Out stack
# our most recent change will be at top
$ 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
# Now let's apply our dirty changes back by popping them off the stack
# 'git stash apply' also works too
$ git stash pop
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
#
# modified: index.html
# modified: lib/simplegit.rb
#
# Now you're good to go!
[Additional Reading.](http://git-scm.com/book/en/v1/Git-Tools-Stashing)
### rebase (caution)
Take all changes that were committed on one branch, and replay them onto another branch.
@ -396,4 +445,4 @@ $ git rm /pather/to/the/file/HelloWorld.c
* [GitGuys](http://www.gitguys.com/)
* [Git - the simple guide](http://rogerdudler.github.io/git-guide/index.html)
* [Git - the simple guide](http://rogerdudler.github.io/git-guide/index.html)