Can't checkout git branch started with hyphen (

I have cloned a git repository.
This repository has a remote branch something like -feature-abc .
When I type git checkout -feature-abc , I get:

error: unknown switch `e'

Any idea how to checkout this branch?


Try using this syntax:

git checkout -- -feature-abc

The double hyphen syntax should help git separate the command options from the actual branch name parameter, as I explained before in "Deleting a badly named git branch".


If that doesn't work, you can follow the recipe suggested in "How do I rename a local Git branch?"

Go into your working copy's .git/refs/heads, find the filename "-dumb-name", get the hash of the branch. Then this will check it out, make a new branch with a sane name, and delete the old one.

  • Go into your working copy's .git/refs/heads ,
  • find the file named " -feature-abc ",
  • get the hash of the branch ( cat the file).
  • Then check it out, make a new branch with a sane name, and delete the old one.
  • git checkout {hash}
    git checkout -b brilliant-name
    git branch -d -- -dumb-name
    

    Finally I am able to get things working based on VonC's Answer.

    Solution 1:

    git checkout -b feature-abc origin/-feature-abc

    Solution 2:

  • Go into your working copy's .git/refs/remotes/origin ,
  • find the file named " -feature-abc ",
  • get the hash of the branch ( cat the file),
  • Then check it out, make a new branch with a sane name,
  • Make new branch track remote branch.
  • git checkout {hash}
    git checkout -b feature-abc
    git branch --set-upstream-to=origin/-feature-abc feature-abc
    

    Make an existing Git branch track a remote branch?

    链接地址: http://www.djcxy.com/p/2618.html

    上一篇: 如何使头在git中掌握?

    下一篇: 无法签出连字符开头的git分支(