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 (
catthe 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