git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: "git checkout foo" is getting confused by folder named "foo"

From
Keshav Kini <keshav.kini@gmail.com>
Date
Sep 25, 2013, 03:13 UTC
Message-ID
<87y56lsie0.fsf@gmail.com>
In-Reply-To
<CAJDDKr64ou+gO7WJLFZ4zOSv+VCbkiW7nKuZa9=5_fiSqGUeyQ@mail.gmail.com>
David Aguilar <davvid@gmail.com> writes:
Show 20 quoted lines
> On Tue, Sep 24, 2013 at 2:07 PM, Jona Christopher Sahnwaldt
> <jc@sahnwaldt.de> wrote:
>> Hi,
>>
>> maybe this has already been reported, but I didn't find it in the mail archive.
>>
>> If I understand correctly, after I clone a repo, I should be able to
>> switch to branch foo just by running
>>
>> git checkout foo
>>
>> This doesn't seem to work if a folder called "foo" exists in the root
>> of the repo.
>
> git checkout foo --
>
> The double-dash at the end disambiguates between refs and paths.
>
> You can use that trick on any command that accepts refspec (branches,
> tags, etc) and pathspec (path patterns).

I was going to reply with similar advice, but I actually tried it on the example repo and it didn't work. Apparently it doesn't interoperate properly with the functionality that guesses when you're trying to check out a remote branch and creates an equivalently named local branch.

    [2] fs@erdos /tmp $ git clone https://github.com/dbpedia/extraction-framework.git
    Cloning into 'extraction-framework'...
    remote: Counting objects: 33513, done.
    remote: Compressing objects: 100% (6633/6633), done.
    remote: Total 33513 (delta 19000), reused 32922 (delta 18436)
    Receiving objects: 100% (33513/33513), 23.48 MiB | 747.00 KiB/s, done.
    Resolving deltas: 100% (19000/19000), done.
    Checking connectivity... done
    [2] fs@erdos /tmp $ cd extraction-framework/
    [2] fs@erdos /tmp/extraction-framework $ git checkout live-dev --
    fatal: invalid reference: live-dev
    [2] fs@erdos /tmp/extraction-framework $ git checkout live-dev
    Branch live-dev set up to track remote branch live-dev from origin.
    Switched to a new branch 'live-dev'
    [2] fs@erdos /tmp/extraction-framework $ git checkout master
    Switched to branch 'master'
    [2] fs@erdos /tmp/extraction-framework $ git checkout wiktionary
    [2] fs@erdos /tmp/extraction-framework $ git branch
      live-dev
    * master
    [2] fs@erdos /tmp/extraction-framework $ git checkout wiktionary --
    fatal: invalid reference: wiktionary
-Keshav
Previous: David AguilarNext: Duy Nguyen
Message 3 of 11 in “"git checkout foo" is getting confused by folder named "foo"”
  1. Jona Christopher SahnwaldtSep 24, 2013
  2. David AguilarSep 25, 2013
  3. Keshav KiniSep 25, 2013
  4. Duy NguyenSep 25, 2013
  5. Jona Christopher SahnwaldtSep 25, 2013
  6. Matthieu MoySep 25, 2013
  7. Jona Christopher SahnwaldtSep 25, 2013
  8. Matthieu MoySep 25, 2013
  9. Jona Christopher SahnwaldtSep 25, 2013
  10. Matthieu MoySep 25, 2013
  11. Jona Christopher SahnwaldtSep 26, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.