Unlike other commands, git stash doesn't work outside of the worktree, even when --work-tree is specified: abrooks@host:~/tmp$ mkdir test-repo abrooks@host:~/tmp$ cd !$ cd test-repo abrooks@host:~/tmp/test-repo$ git init Initialized empty Git repository in /home/abrooks/tmp/test-repo/.git/ abrooks@host:~/tmp/test-repo$ echo "foo" > foo.txt abrooks@host:~/tmp/test-repo$ git add foo.txt abrooks@host:~/tmp/test-repo$ git commit -m "adding foo" [master (root-commit) 9d0705e] adding foo 1 file changed, 1 insertion(+) create mode 100644 foo.txt abrooks@host:~/tmp/test-repo$ echo "bar" >> foo.txt abrooks@host:~/tmp/test-repo$ cd .. abrooks@host:~/tmp$ git --git-dir=./test-repo/.git --work-tree=./test-repo stash fatal: /usr/lib/git-core/git-stash cannot be used without a working tree. abrooks@host:~/tmp$ cd test-repo/ abrooks@host:~/tmp/test-repo$ git stash Saved working directory and index state WIP on master: 9d0705e adding foo HEAD is now at 9d0705e adding foo abrooks@host:~/tmp/test-repo$ cd ../ abrooks@host:~/tmp$ git --git-dir=./test-repo/.git --work-tree=./test-repo stash list fatal: /usr/lib/git-core/git-stash cannot be used without a working tree. The same also does not work when setting GIT_DIR and GIT_WORK_TREE. As a user, this seems wrong. It looks like the "require_work_tree" function should check the environment variables in addition to the status of the PWD (via git-rev-parse). Having looked through several of the other git-*.sh scripts, I think other shell based git commands will have similar problems. Thanks, Aaron -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html