Jeff King [off-list ref] writes:
quoted
$ mkdir .git/tmp
$ cd .git/tmp
$ git rebase
fatal: fatal: /home/peff/local/git/private/libexec/git-core/git-rebase
cannot be used without a working tree.
So that case is already broken. The only change this would make is that
what used to fail would not actually take them to the top-level of the
working tree[1].
Ugh. It does work if you do:
mkdir .git/tmp
cd .git/tmp
GIT_DIR=$PWD/.. git rebase
Actually, this one is OK. Presense of GIT_DIR combined with the lack of
GIT_WORK_TREE means that .git/tmp must be the top of the working tree, so
it is the script's responsibility to populate the directory with what
matches to $GIT_DIR/index between "mkdir" and "rebase" in the above
sequence.
So I suspect we won't have to worry about this case either.