Благодаря связанному вопросу я узнал, что мне нужно «оформить» удаленную ветвь как новую локальную ветвь и указать новое имя локальной ветки.
git checkout -b newlocalbranchname origin/branch-name
Или вы можете сделать:
git checkout -t origin/branch-name
Последний создаст ветку, которая также настроена на отслеживание удаленной ветки.
Обновление: прошло 5 лет с тех пор, как я впервые разместил этот вопрос. Я многому научился, и с тех пор Git улучшился. Мой обычный рабочий процесс сейчас немного другой.
Если я хочу получить удаленные ветки, я просто запускаю:
git pull
Это выберет все удаленные ветви и объединит текущую ветку. Он будет отображать вывод, который выглядит примерно так:
From github.com:andrewhavens/example-project
dbd07ad..4316d29 master -> origin/master
* [new branch] production -> origin/production
* [new branch] my-bugfix-branch -> origin/my-bugfix-branch
First, rewinding head to replay your work on top of it...
Fast-forwarded master to 4316d296c55ac2e13992a22161fc327944bcf5b8.
Теперь Git знает о моем новом my-bugfix-branch
. Чтобы переключиться на эту ветку, я могу просто запустить:
git checkout my-bugfix-branch
Обычно, я должен был бы создать ветку , прежде чем я мог проверить это, но в более новых версиях мерзавца, он достаточно умен , чтобы знать , что вы хотите , чтобы оформить локальную копию этого удаленного филиала.
git branch --track XX origin/XX
. Ваша команда дает мне ошибку.