Merge branch 'so/stash-staged'
"git stash" learned the "--staged" option to stash away what has been added to the index (and nothing else). * so/stash-staged: stash: get rid of unused argument in stash_staged() stash: implement '--staged' option for 'push' and 'save'
This commit is contained in:
@ -13,7 +13,7 @@ SYNOPSIS
|
||||
'git stash' drop [-q|--quiet] [<stash>]
|
||||
'git stash' ( pop | apply ) [--index] [-q|--quiet] [<stash>]
|
||||
'git stash' branch <branchname> [<stash>]
|
||||
'git stash' [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
|
||||
'git stash' [push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--quiet]
|
||||
[-u|--include-untracked] [-a|--all] [-m|--message <message>]
|
||||
[--pathspec-from-file=<file> [--pathspec-file-nul]]
|
||||
[--] [<pathspec>...]]
|
||||
@ -47,7 +47,7 @@ stash index (e.g. the integer `n` is equivalent to `stash@{n}`).
|
||||
COMMANDS
|
||||
--------
|
||||
|
||||
push [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [-m|--message <message>] [--pathspec-from-file=<file> [--pathspec-file-nul]] [--] [<pathspec>...]::
|
||||
push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [-m|--message <message>] [--pathspec-from-file=<file> [--pathspec-file-nul]] [--] [<pathspec>...]::
|
||||
|
||||
Save your local modifications to a new 'stash entry' and roll them
|
||||
back to HEAD (in the working tree and in the index).
|
||||
@ -60,7 +60,7 @@ subcommand from making an unwanted stash entry. The two exceptions to this
|
||||
are `stash -p` which acts as alias for `stash push -p` and pathspec elements,
|
||||
which are allowed after a double hyphen `--` for disambiguation.
|
||||
|
||||
save [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [<message>]::
|
||||
save [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [<message>]::
|
||||
|
||||
This option is deprecated in favour of 'git stash push'. It
|
||||
differs from "stash push" in that it cannot take pathspec.
|
||||
@ -205,6 +205,16 @@ to learn how to operate the `--patch` mode.
|
||||
The `--patch` option implies `--keep-index`. You can use
|
||||
`--no-keep-index` to override this.
|
||||
|
||||
-S::
|
||||
--staged::
|
||||
This option is only valid for `push` and `save` commands.
|
||||
+
|
||||
Stash only the changes that are currently staged. This is similar to
|
||||
basic `git commit` except the state is committed to the stash instead
|
||||
of current branch.
|
||||
+
|
||||
The `--patch` option has priority over this one.
|
||||
|
||||
--pathspec-from-file=<file>::
|
||||
This option is only valid for `push` command.
|
||||
+
|
||||
@ -341,6 +351,24 @@ $ edit/build/test remaining parts
|
||||
$ git commit foo -m 'Remaining parts'
|
||||
----------------------------------------------------------------
|
||||
|
||||
Saving unrelated changes for future use::
|
||||
|
||||
When you are in the middle of massive changes and you find some
|
||||
unrelated issue that you don't want to forget to fix, you can do the
|
||||
change(s), stage them, and use `git stash push --staged` to stash them
|
||||
out for future use. This is similar to committing the staged changes,
|
||||
only the commit ends-up being in the stash and not on the current branch.
|
||||
+
|
||||
----------------------------------------------------------------
|
||||
# ... hack hack hack ...
|
||||
$ git add --patch foo # add unrelated changes to the index
|
||||
$ git stash push --staged # save these changes to the stash
|
||||
# ... hack hack hack, finish curent changes ...
|
||||
$ git commit -m 'Massive' # commit fully tested changes
|
||||
$ git switch fixup-branch # switch to another branch
|
||||
$ git stash pop # to finish work on the saved changes
|
||||
----------------------------------------------------------------
|
||||
|
||||
Recovering stash entries that were cleared/dropped erroneously::
|
||||
|
||||
If you mistakenly drop or clear stash entries, they cannot be recovered
|
||||
|
Reference in New Issue
Block a user