# Checkout previous branch command not working on ​2.34.1.400

3 messages from 2021-12-06 to 2021-12-06. Participants: Will Beason, Eric Sunshine.
Thread: https://gitlist.dev/t/57039

## Will Beason, 2021-12-06 16:52

Subject: Checkout previous branch command not working on ​2.34.1.400
Message-ID: <CAO6o7kKXZg37ydC145yf5uZt+tsKdYADnVfinO0sHAN=cHo-FA@mail.gmail.com>
URL: https://gitlist.dev/e/CAO6o7kKXZg37ydC145yf5uZt%2BtsKdYADnVfinO0sHAN%3DcHo-FA%40mail.gmail.com

```
Thank you for filling out a Git bug report!
Please answer the following questions to help us understand your issue.

What did you do before the bug happened? (Steps to reproduce your issue)

I typed "git checkout -"

What did you expect to happen? (Expected behavior)

I expected the previous branch to be checked out

What happened instead? (Actual behavior)

error: pathspec '-' did not match any file(s) known to git

What's different between what you expected and what actually happened?

I expected the previously-working behavior of switching to previous branch to
work, but it didn't.

Anything else you want to add:

Please review the rest of the bug report below.
You can delete any lines you don't wish to share.


[System Info]
git version:
git version 2.34.1.400.ga245620fadb-goog
cpu: x86_64
no commit associated with this build
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
uname: Linux 5.10.46-5rodete1-amd64 #1 SMP Debian 5.10.46-5rodete1
(2021-09-28) x86_64
compiler info: gnuc: 10.3
libc info: glibc: 2.32
$SHELL (typically, interactive shell): /bin/bash


[Enabled Hooks]
commit-msg
post-checkout
post-commit
post-merge
pre-commit
pre-push
prepare-commit-msg


- Will Beason

```

## Eric Sunshine, 2021-12-06 17:17

Subject: Re: Checkout previous branch command not working on ​2.34.1.400
Message-ID: <CAPig+cQr27ra4DTjC1gyZO7YdV81Jq5J3s-LcAf+wePP=+n59g@mail.gmail.com>
URL: https://gitlist.dev/e/CAPig%2BcQr27ra4DTjC1gyZO7YdV81Jq5J3s-LcAf%2BwePP%3D%2Bn59g%40mail.gmail.com
In-Reply-To: <CAO6o7kKXZg37ydC145yf5uZt+tsKdYADnVfinO0sHAN=cHo-FA@mail.gmail.com>

```
On Mon, Dec 6, 2021 at 12:04 PM Will Beason <willbeason@google.com> wrote:
> I typed "git checkout -"
> error: pathspec '-' did not match any file(s) known to git
>
> I expected the previously-working behavior of switching to previous branch to
> work, but it didn't.

If I recall correctly, for `-` to work it consults the reflog, but if
the reflog has been cleared or expired, it won't be able to determine
the previous branch. For instance, try this:

    % git init foo
    % cd foo
    % echo data >data
    % git add data
    % git commit -m data
    % git checkout -b other
    % git checkout -
    % git reflog expire --expire=now --all
    % git checkout -
    error: pathspec '-' did not match any file(s) known to git

So, this is probably expected behavior, though the error message isn't
very helpful and perhaps could be improved.

```

## Will Beason, 2021-12-06 17:36

Subject: Re: Checkout previous branch command not working on ​2.34.1.400
Message-ID: <CAO6o7k+hphmVKtZtrJEvkZq7TQv8HRCMBSFQ-5JARK2fRoq4sQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAO6o7k%2BhphmVKtZtrJEvkZq7TQv8HRCMBSFQ-5JARK2fRoq4sQ%40mail.gmail.com
In-Reply-To: <CAPig+cQr27ra4DTjC1gyZO7YdV81Jq5J3s-LcAf+wePP=+n59g@mail.gmail.com>

```
I'm going to bet you're absolutely correct. Yeah, the error message
could be clearer.

After using "git checkout [branch]" for a while, I reflexively typed
"git checkout -" and it worked again.

- Will Beason

On Mon, Dec 6, 2021 at 11:17 AM Eric Sunshine <sunshine@sunshineco.com> wrote:
>
> On Mon, Dec 6, 2021 at 12:04 PM Will Beason <willbeason@google.com> wrote:
> > I typed "git checkout -"
> > error: pathspec '-' did not match any file(s) known to git
> >
> > I expected the previously-working behavior of switching to previous branch to
> > work, but it didn't.
>
> If I recall correctly, for `-` to work it consults the reflog, but if
> the reflog has been cleared or expired, it won't be able to determine
> the previous branch. For instance, try this:
>
>     % git init foo
>     % cd foo
>     % echo data >data
>     % git add data
>     % git commit -m data
>     % git checkout -b other
>     % git checkout -
>     % git reflog expire --expire=now --all
>     % git checkout -
>     error: pathspec '-' did not match any file(s) known to git
>
> So, this is probably expected behavior, though the error message isn't
> very helpful and perhaps could be improved.

```
