I’m going to venture a guess that you have a directory named lexer
at the top level. Since git checkout
is used both to switch branches and to reset files in the tree, it’s probably detecting that you don’t have a branch called lexer
but you do have a path and selects the second mode.
It works for your friend because he already has a lexer
branch.
Easiest workaround is probably to create the branch using git branch
instead.
git branch --track lexer origin/lexer
should do that for you. You can then use git checkout
to switch to it.
Another option might be to use the --
flag to git checkout. I haven’t tried it but I think it should work:
git checkout lexer --
When you add --
, the word before it is always considered a branch/commit/tree and the word after a path.