Thread (4 messages) flat view 4 messages, 2 authors, 2021-09-05

Re: stash push/pop unstages files?

From: Chris Torek <hidden>
Date: 2021-09-05 17:16:06

On Sun, Sep 5, 2021 at 10:12 AM Yuri [off-list ref] wrote:
In one sub-directory I altered some files, added a directory with files
and added the changes (git add .)

Then I called 'git stash push && git stash pop'.

After this the newly added directory remained in the staged status, but
altered files became unstaged.

Is this an intended behavior?
Yes.
Why stash push/pop unstages files? Shouldn't it preserve the directory
as-is?
It does, *provided* you invoke the pop step with `--index`.

When `git stash push` makes a stash, it saves both the index
(staging area) and working tree, as two separate commits.

Later, at the time you apply the saved stash, you choose
whether to use the saved index / staging-area (`--index`) or to
discard it (no `--index`).  The apply step uses the saved working
tree in all cases, and if you also stashed untracked files with
`-u` or `-a`, it uses this third commit as well.

The `pop` command is just `apply` followed by `drop` if the
application succeeds.

Chris
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help