Hi. When I clone a remote that has a branch `foo`, then `git checkout foo --`, the path disamgiuator makes the operation fail. `git checkout foo` without the disambiguator works. Following that, when branch `foo` already exists, `git checkout foo --` works even with the disambiguator that caused it to fail previously. Here's a log demonstrating a full reproduction of the bug with git 1.7.2 on Linux: === LOG START === $ mkdir origin && cd origin && git init && echo 1 >> test.txt && git add test.txt && git commit -am "First." && git branch foo Initialized empty Git repository in /home/afine/lab/gitexp/origin/origin/.git/ [master (root-commit) 6042525] First. 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 test.txt $ cd .. && git clone origin local && cd local Cloning into local... done. $ git checkout foo -- fatal: invalid reference: foo $ git checkout foo Branch foo set up to track remote branch foo from origin. Switched to a new branch 'foo' $ git checkout master Switched to branch 'master' $ git checkout foo -- Switched to branch 'foo' === LOG END === This looks like a bug. Thanks, D -- 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