threads / discuss / 46736

--work-tree does not work for git-stash

Subject: --work-tree does not work for git-stash

## tl;dr

2 messages between Sep 11, 2017 and Sep 11, 2017.

replies: 1people: 1as markdown or json

Allen Li· Sep 11, 2017, 18:32 UTC · lore

$ git --version git version 2.14.1.581

This does not work:

$ git --git-dir ~/foo/.git --work-tree ~/foo stash create fatal: /usr/lib/git-core/git-stash cannot be used without a working tree.

This does:
$ git --git-dir ~/foo/.git --work-tree ~/foo -C ~/foo stash create
I found a description of the bug here:
https://stackoverflow.com/a/5863555
Allen Li· Sep 11, 2017, 18:59 UTC · re: Allen Li · lore

Re: --work-tree does not work for git-stash

On Mon, Sep 11, 2017 at 11:32 AM, Allen Li <vianchielfaura@gmail.com> wrote:
Show 15 quoted lines
> $ git --version
> git version 2.14.1.581
>
> This does not work:
>
> $ git --git-dir ~/foo/.git --work-tree ~/foo stash create
> fatal: /usr/lib/git-core/git-stash cannot be used without a working tree.
>
> This does:
>
> $ git --git-dir ~/foo/.git --work-tree ~/foo -C ~/foo stash create
>
> I found a description of the bug here:
>
> https://stackoverflow.com/a/5863555
I think that this bug may be quite serious.
If you were to run:
$ git --git-dir ~/tmp/.git stash

This will actually stash using your current directory as the worktree, which could potentially screw up things quite seriously. In my case, I had an unstaged file at ~/tmp/tmp, so Git decided to remove the entire ~/tmp directory as my current directory was ~ and I have a git repo in ~ for my dotfiles.

← back to recent threads