Мне разместили проект на GitHub. Я создал ответвление по одному компьютеру, затем продвинул мои изменения в GitHub с:
git push origin branch-name
Теперь я нахожусь на другом компьютере, и я хочу загрузить то ответвление. Таким образом, я попробовал:
git pull origin branch-name
... но все это сделало был перезаписать мое основное ответвление с изменениями в моем новом ответвлении.
Что я должен сделать для надлежащего получения по запросу моего удаленного ответвления, не перезаписывая существующие ответвления?
Создайте новый каталог и создайте клон.
git clone (адрес происхождения) (название ветви)
-121--626391-Посмотрите на
ПАРАМЕТРЫ ОБРАТНОГО ВЫЗОВА для определения и
-121--3332048-Благодаря соответствующему вопросу я обнаружил, что мне нужно "извлечь" удаленную ветвь как новую локальную
git checkout -b newlocalbranchname origin/branch-name
Или вы можете сделать:
git checkout -t origin/branch-name
Последний создаст ветвь, которая также настроена для отслеживания удаленной ветви.
Обновление: Прошло 5 лет с тех пор, как я опубликовал этот вопрос. Я многому научился и гит с тех пор улучшился. Мой обычный рабочий процесс сейчас немного отличается.
Если я хочу получить удаленные ветви, я просто запускаю:
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-ветви
. Чтобы перейти на эту ветвь, я могу просто запустить:
git checkout my-bugfix-branch
Обычно, мне нужно создать ветвь, прежде чем я могу извлечь ее, но в более новых версиях git, это достаточно умно, чтобы знать, что вы хотите извлечь локальную копию этой удаленной ветви.
Вы можете использовать git remote как:
git fetch origin
и затем установить локальную ветку для отслеживания удаленной ветки как показано ниже:
git branch --track [local-branch-name] origin/remote-branch-name
Теперь у вас будет содержимое удаленной ветки github в local-branch-name.
Вы можете переключиться на это имя локальной ветки и начать работу:
git checkout [local-branch-name]
Создайте новый каталог, а вместо этого сделайте клон.
git clone (адрес источника) (имя ветви)