# Git stash create with untracked files?

2 messages from 2022-04-27 to 2022-04-27. Participants: Tao Klerks, brian m. carlson.
Thread: https://gitlist.dev/t/57805

## Tao Klerks, 2022-04-27 10:42

Subject: Git stash create with untracked files?
Message-ID: <CAPMMpoj1pF=FfRg6Rgz6bP2mZaQhApL7QQx9=2U7i4AE4zsJ1w@mail.gmail.com>
URL: https://gitlist.dev/e/CAPMMpoj1pF%3DFfRg6Rgz6bP2mZaQhApL7QQx9%3D2U7i4AE4zsJ1w%40mail.gmail.com

```
Hi folks,

I'm just checking in case I'm missing something: Is there any way to
tell "git stash create" to include untracked files?

Someone recently brought up a situation where they'd like to take a
working directory state (incl untracked but not-ignored files), and
reproduce it in another working directory on another machine; "git
stash create" seems to be ideal for this purpose, save for the
(apparent) lack of arguments support.

If this is not possible today and we wanted to better support this
usecase, what would be a sensible way to do it? I can see three
possible directions:

1) Change the "create" subcommand to treat specific options as options
rather than the stash message (and make it understand -u /
--include-untracked)

2) Create a new subcommand like "create" that actually supported
relevant options (--include-untracked, --staged, maybe also
pathspecs), without changing the contract of "create"

3) Add an option to the "save" subcommand, asking it to actually leave
the working tree untouched (like create does) - and then expect the
user of this usecase to "drop".


It's possible to just use the existing "push" and then immediately
"pop", but the resulting temporary changes to the working tree could
make things like IDEs go into an unhappy indexing frenzy, depending on
the amount of local change.

I realize there's the "make stashes refs" work ongoing that's related
to this, but I don't think I've seen anything there that directly
addresses this "make my local changes be available over there
*without* touching my working tree" requirement.

Thanks,
Tao

```

## brian m. carlson, 2022-04-27 21:54

Subject: Re: Git stash create with untracked files?
Message-ID: <Ymm7iKKn/1I/YwOk@camp.crustytoothpaste.net>
URL: https://gitlist.dev/e/Ymm7iKKn%2F1I%2FYwOk%40camp.crustytoothpaste.net
In-Reply-To: <CAPMMpoj1pF=FfRg6Rgz6bP2mZaQhApL7QQx9=2U7i4AE4zsJ1w@mail.gmail.com>

```
On 2022-04-27 at 10:42:51, Tao Klerks wrote:
> Hi folks,
> 
> I'm just checking in case I'm missing something: Is there any way to
> tell "git stash create" to include untracked files?
> 
> Someone recently brought up a situation where they'd like to take a
> working directory state (incl untracked but not-ignored files), and
> reproduce it in another working directory on another machine; "git
> stash create" seems to be ideal for this purpose, save for the
> (apparent) lack of arguments support.

I don't think there's support for that right now, looking at the code.

> If this is not possible today and we wanted to better support this
> usecase, what would be a sensible way to do it? I can see three
> possible directions:
> 
> 1) Change the "create" subcommand to treat specific options as options
> rather than the stash message (and make it understand -u /
> --include-untracked)

This seems reasonable.  do_create_stash already takes several arguments
specifying what to include, so it's probably just a matter of parsing
options in create_stash and passing the proper arguments to
do_create_stash.
-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA

```
