1
0

Preference git stash apply over pop when first learning

Flipped to `apply` over `pop` based on suggestion by
@matthewmccullough. User can then have their Pringles
moment after first trying their hand at repatching in
a way that doesn't make things disappear.

Expanded the goings-on of `git stash list` and the
fact that new items are made into zero, pushing the
rest under.
This commit is contained in:
Soon Van 2012-12-22 10:50:24 -05:00
parent bf91400618
commit a48fc60d90

View File

@ -877,18 +877,36 @@ nothing to commit (working directory clean)
stash@{0}: WIP on master: 5857ac1 hello with a flower stash@{0}: WIP on master: 5857ac1 hello with a flower
</pre> </pre>
<h4> <p>The last item added onto the stash will be referenced by
git stash pop <code>stash@{0}</code> and increment those already there by one.
<small>remove item from the list and apply to current working directory</small>
</h4>
<p>After you've done the changes you were called away for, and you're ready to
continue from where you left off, run the <code>git stash pop</code> command
to bring back the working directory to that state and remove it from the stash list.
</p> </p>
<pre> <pre>
<b>$ git stash pop</b> <b>$ vim hello.rb</b>
<b>$ git commit -am 'it stops raining'</b>
[master ee2d2c6] it stops raining
1 files changed, 1 insertions(+), 1 deletions(-)
<b>$ vim hello.rb</b>
<b>$ git stash</b>
Saved working directory and index state WIP on master: ee2d2c6 it stops raining
HEAD is now at ee2d2c6 it stops raining
<b>$ git stash list</b>
stash@{0}: WIP on master: ee2d2c6 it stops raining
stash@{1}: WIP on master: 5857ac1 hello with a flower
</pre>
<h4>
git stash apply
<small>grab the item from the stash list and apply to current working directory</small>
</h4>
<p>When you're ready to continue from where you left off, run the
<code>git stash apply</code> command to bring back the saved changes
onto the working directory.
</p>
<pre>
<b>$ git stash apply</b>
# On branch master # On branch master
# Changes not staged for commit: # Changes not staged for commit:
# (use "git add &lt;file>..." to update what will be committed) # (use "git add &lt;file>..." to update what will be committed)
@ -897,28 +915,43 @@ stash@{0}: WIP on master: 5857ac1 hello with a flower
# <span class="red">modified: hello.rb</span> # <span class="red">modified: hello.rb</span>
# #
no changes added to commit (use "git add" and/or "git commit -a") no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0}: (14ddbc6f2c26330e33d08faf15d88f816b6cbd45)
</pre> </pre>
<p>By default it will reapply the last added stash item to the working <p>By default it will reapply the last added stash item to the working
directory. This will be the item referenced by <code>stash@{0}</code>. directory. This will be the item referenced by <code>stash@{0}</code>.
You can grab another stash item instead if you reference it in the arguments You can grab another stash item instead if you reference it in the arguments
list. For example, <code>git stash pop stash@{1}</code> will apply the item list. For example, <code>git stash apply stash@{1}</code> will apply the item
referenced by <code>stash@{1}</code>. referenced by <code>stash@{1}</code>.
</p> </p>
<p>If you want to leave the item on the stack, use <p>If you also want to remove the item from the stack at the same time,
<code>git stash apply</code> instead. use <code>git stash pop</code> instead.
</p> </p>
<h4> <h4>
git stash clear git stash drop
<small>remove all items from the stash list</small> <small>remove an item from the stash list</small>
</h4> </h4>
<p>When you're done with the stash and/or you want to remove of all the <p>When you're done with the stashed item and/or want to remove it from the
stored items, just run the <code>git stash clear</code> command. But only list, run the <code>git stash drop</code> command. By default this will
do this if you're sure you're done with the stash. remove the last added stash item. You can also remove a specific item if
you include it as an argument.
</p>
<p>In this example, our stash list has at least two items, but we want
to get rid of the item added before last, which is referenced by
<code>stash@{1}</code>.
</p>
<pre>
<b>$ git stash drop stash@{1}</b>
Dropped stash@{1} (0b1478540189f30fef9804684673907c65865d8f)
</pre>
<p>If you want to remove of all the stored items, just run
the <code>git stash clear</code> command. But only do this if you're
sure you're done with the stash.
</p> </p>
<p class="nutshell"> <p class="nutshell">