Как я могу переключиться на другую ветку в git?

Какая из этих строк правильная?

git checkout 'another_branch'

Или

git checkout origin 'another_branch'

Или

git checkout origin/'another_branch'

И в чем разница между этими строками?


57 голосов | спросил Benyamin Jafari 4 MonEurope/Moscow2017-12-04T13:11:49+03:00Europe/Moscow12bEurope/MoscowMon, 04 Dec 2017 13:11:49 +0300 2017, 13:11:49

4 ответа


0

Если another_branch уже существует локально, и вы не находитесь в этой ветке, то git checkout another_branch переключается на ветку.

Если another_branch не существует, но origin/another_branch делает, тогда git checkout another_branch эквивалентно git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch. Это для создания another_branch из origin/another_branch и установки origin/another_branch в качестве входного потока для another_branch.

Если ничего не существует, git checkout another_branch возвращает ошибку.

git checkout origin another_branch в большинстве случаев возвращает ошибку. Если origin является ревизией, а another_branch файл, затем он проверяет файл этой ревизии, но, скорее всего, это не то, что вы ожидаете. origin чаще всего используется в git fetch, ---- +: = 16 =: + ---- и git pull как удаленный, псевдоним URL-адрес в удаленном хранилище.

git push успешно выполняется, если git checkout origin/another_branch существует , Это приводит к тому, что он находится в отключенном состоянии HEAD, а не в какой-либо ветви. Если вы делаете новые коммиты, новые коммиты не будут доступны из существующих ветвей, и ни одна из ветвей не будет обновлена.

ответил ElpieKay 4 MonEurope/Moscow2017-12-04T13:26:02+03:00Europe/Moscow12bEurope/MoscowMon, 04 Dec 2017 13:26:02 +0300 2017, 13:26:02
0

Переключение на другую ветку в git. Простой ответ,

git-checkout - переключение веток или восстановление файлов рабочего дерева

git fetch origin         <----this will fetch the branch
git checkout branch_name <--- Switching the branch

Перед переключением ветки убедитесь, что у вас нет никаких измененных файлов, в этом случае вы можете зафиксировать изменения или сохранить их.

ответил danglingpointer 4 MonEurope/Moscow2017-12-04T14:23:19+03:00Europe/Moscow12bEurope/MoscowMon, 04 Dec 2017 14:23:19 +0300 2017, 14:23:19
0

[git checkout "branch_name"]

это еще один способ сказать:

[git checkout -b branch_name origin/branch_name]

в случае, если "имя_в ветви" существует только удаленно.

[git checkout -b branch_name origin/branch_name] полезно, если у вас несколько пультов.

Относительно [git checkout origin 'another_branch'] Я не уверен, что это возможно, AFAK, вы можете сделать это, используя команду «fetch» - [git fetch origin 'another_branch']

ответил Mehdi 4 MonEurope/Moscow2017-12-04T13:37:31+03:00Europe/Moscow12bEurope/MoscowMon, 04 Dec 2017 13:37:31 +0300 2017, 13:37:31
0

Проверьте: git branch -a

Если вы получаете только одну ветку. Затем выполните следующие действия.

  • Шаг 1: git config --list
  • Шаг 2: git config --unset remote.origin.fetch
  • Шаг 3: git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
ответил pavan 9 Maypm18 2018, 17:10:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132