Как мне перейти на новую ветку в git - PullRequest
1 голос
/ 12 сентября 2011

Я клонировал git-репозиторий, и я хотел бы переключиться на определенную ветку из следующего списка (например, branch1, branch2, branch3)

Должен ли я сказать git fetch origin branch2?

Как мне узнать, что я переключился на эту конкретную ветку в моем локальном хранилище?

Как мне перейти, чтобы сказать 'branch3' от 'branch2'?

Ответы [ 2 ]

4 голосов
/ 12 сентября 2011

В последних версиях git достаточно логики DWIM («Делай, что я имею в виду!»), Чтобы понять, что ты просто делаешь:

git checkout branch1

... в этой ситуации.Это будет работать, если нет локальной ветви с именем branch1, и есть только одна ветка удаленного отслеживания, которая заканчивается на branch1 - в этом случае она эквивалентна более длинной:

git checkout --track -b branch1 origin/branch1

...который должен работать при любых обстоятельствах.


Я понимаю, что мне не хватало ответа на некоторые ваши более поздние вопросы.git хранит состояние веток из репозитория origin в так называемых «ветвях удаленного отслеживания» - это те, которые выглядят как origin/master, origin/branch1, origin/branch2 и т. д. Если вы хотите обновитьвсе из origin просто используйте:

git fetch origin

Чтобы увидеть все ваши ветви удаленного отслеживания, вы можете использовать:

git branch -r

Значение полной команды, которую я цитировалвыше:

git checkout --track -b branch1 origin/branch1

... is:

  • создать и переключиться на новую ветвь с именем branch1 (бит checkout -b branch1)
  • startон равен origin/branch1 (т. е. основан на последнем кэшированном состоянии branch1 из origin)
  • и помечает origin/branch1 как "восходящий поток" branch1 в вашей конфигурации git (--track бит, хотя это на самом деле подразумевается, если начальная точка является ветвью удаленного отслеживания)
2 голосов
/ 12 сентября 2011

Я предполагаю, что вы хотите переключиться на удаленную ветку.Если вы только что клонировали репо, то должен быть удаленный по умолчанию origin (вы можете просмотреть свои удаленные репозитории через git remote -v.

Чтобы переключить (или оформить) удаленную ветку: git checkout -t origin/BRANCH_NAME - этоговорит, что вы хотите изменить содержимое вашего рабочего каталога на удаленную ветвь BRANCH_NAME, связанную с удаленной ветвью, на которую указывает origin. Это создаст нечто, называемое «отслеживающая ветвь», которая настроит локальную ветвь для зеркалирования удаленной ветки.

Чтобы проверить, в какой ветке вы находитесь, наберите: git branch. Чтобы в любой момент вернуться к мастеру, просто выполните git checkout master

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...