Как скачать ветку с git? - PullRequest
       18

Как скачать ветку с git?

185 голосов
/ 19 февраля 2010

У меня есть проект, размещенный на GitHub. Я создал ветку на одном компьютере, а затем отправил свои изменения в GitHub с помощью:

git push origin branch-name

Сейчас я на другом компьютере и хочу скачать эту ветку. Итак, я попробовал:

git pull origin branch-name

... но все, что я сделал, переписал мою основную ветку с изменениями в моей новой ветви.

Что мне нужно сделать, чтобы правильно вытянуть удаленную ветку, не перезаписывая существующие ветви?

Ответы [ 7 ]

332 голосов
/ 19 февраля 2010

Благодаря связанному вопросу я обнаружил, что мне нужно «оформить» удаленную ветвь как новую локальную ветвь и указать новое имя локальной ветки.

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 он достаточно умен, чтобы знать, что вы хотите оформить локальную копию этой удаленной ветви.

58 голосов
/ 14 апреля 2012

Для любого новичка Git, такого как я, вот несколько шагов, которые вы могли бы выполнить, чтобы загрузить удаленный репозиторий, а затем переключиться на ветку, которую вы хотите просмотреть. Возможно, они как-то ругают Git, но это помогло мне! : -)

Клонируйте репозиторий, для которого вы хотите загрузить код (в этом примере я выбрал проект LRResty на Github):

$ git clone https://github.com/lukeredpath/LRResty.git
$ cd LRResty

Проверьте, какую ветвь вы используете в данный момент (это должна быть основная ветвь):

$ git branch    
* master

Отметьте нужную ветку, в моем случае она называется «arcified»:

 $ git checkout -b arcified origin/arcified
 Branch arcified set up to track remote branch arcified from origin.
 Switched to a new branch 'arcified'

Подтвердите, что вы используете нужную ветку:

$ git branch    
* arcified
  master

Если вы хотите обновить код позже, запустите git pull:

$ git pull
Already up-to-date.
21 голосов
/ 19 февраля 2010

Вы можете использовать Git Remote, как:

git fetch origin

, а затем настройте локальную ветку для отслеживания удаленной ветки, как показано ниже:

git branch --track [local-branch-name] origin/remote-branch-name

Теперь у вас будет содержимое удаленной ветки github в local-branch-name.

Вы можете переключиться на это local-branch-name и начать работу:

git checkout [local-branch-name]
12 голосов
/ 07 сентября 2017

Перейдите в папку на новой машине, которую вы хотите загрузить с git на git bash.

Используйте приведенную ниже команду для загрузки кода из любой понравившейся вам ветки

git clone 'git ssh url' -b 'Branch Name'

Будет загружен соответствующий код филиала.

9 голосов
/ 17 июля 2016

Git clone и cd в имени репо:

$ git clone https://github.com/PabloEzequiel/iOS-AppleWach.git
Cloning into 'iOS-AppleWach'...
$ cd iOS-AppleWach

Переключиться на нужную мне ветку (страницу GitHub):

$ git checkout -b gh-pages origin/gh-pages
Branch gh-pages set up to track remote branch gh-pages from origin.
Switched to a new branch 'gh-pages'

И потяните ветку:

$ git pull
Already up-to-date.

лс

$ ls
index.html      params.json     stylesheets
7 голосов
/ 09 июля 2018

вы можете использовать:

git clone <url> --branch <branch>

для клонирования / загрузки только содержимого ветки.

Это было особенно полезно для меня, поскольку содержимое моей ветви полностью отличалось от основной ветви (хотя обычно это не так). Следовательно, предложения, перечисленные другими выше, не помогли мне, и я получу копию мастера даже после того, как проверил ветку и сделал git pull.

Эта команда напрямую выдаст вам содержимое ветки. У меня это сработало.

0 голосов
/ 19 февраля 2010

Создайте новый каталог и сделайте клон вместо него.

git clone (адрес происхождения) (название филиала)

...