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?
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
Or, since August 2019, Git 2.23 and git switch
presented here:
git switch -- -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 switch -c 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