#git #atlassian-sourcetree #git-checkout
#git #atlassian-sourcetree #git-проверка
Вопрос:
В sourcetree я хотел бы просто проверить удаленную ветку разработки, чтобы я мог запустить там новую ветку функций. В настоящее время я нахожусь в другой ветке функций, в которой я зафиксировал и перенес все свои изменения.
Однако, когда я щелкаю правой кнопкой мыши по удаленной ветке origin / develop, я получаю это:
По какой-то причине я нигде не могу найти, в чем здесь разница. Я не хочу прерывать репозиторий на моей новой работе, поэтому я очень осторожен. В GitKraken вы просто выполняете проверку на удаленном компьютере и при необходимости обновляете свою локальную ветку разработки.
Ответ №1:
Что это делает, так это:
git checkout -b develop --track origin/develop
Это гарантирует, что локальная ветвь develop
будет отправляться, по умолчанию, в удаленную ветвь origin/develop
.
Обратите внимание, что с Git 2.23 это было бы git switch
git switch -c develop --track origin/develop
SourceTree еще не интегрировал эту новую команду.
Я не хочу прерывать репозиторий на моей новой работе, поэтому я очень осторожен
Это ничего не нарушит: это только локальная операция.
Это отличается от «Checkout existing», в котором будут перечислены только существующие локальные или удаленные ветви, что делает его эквивалентом:
git switch <branch>
Комментарии:
1. Это отличный ответ на вопрос «Что делает ‘Проверка новой ветки'». Не могли бы вы добавить одно или два предложения, объясняющих, чем это отличается от «Проверки существующей»?
2. @DavidCary Конечно. Я соответствующим образом отредактировал ответ.
Ответ №2:
Я не очень хорошо знаю GitKraken или Sourcetree, но в целом вы бы не захотели напрямую проверять ветку удаленного отслеживания в Git. То есть, в общем случае вы бы не хотели этого делать:
git checkout origin/develop
Причина в том, что отслеживающие ветви, как следует из названия, существуют в основном для того, чтобы отслеживать состояние истинной удаленной ветви. Но вся ваша локальная работа должна быть перенесена куда-нибудь в новую локальную ветку.
Итак, возвращаясь к вашему вопросу Sourcetree и скриншоту, я не вижу в этом ничего удивительного. Вы говорите, что хотите создать новую локальную ветку develop
, основанную на ветке отслеживания origin/develop
. Кроме того, вы сообщаете Sourcetree / Git, что хотите, чтобы эта локальная ветка отслеживала ветку удаленного отслеживания origin/develop
.
Ответ №3:
Я не слишком знаком с sourcetree, но обычно вы можете создать новую ветку через проверку (если вы добавляете a -b к команде в командном окне), поэтому я бы предположил, что проверка новой ветки делает именно это, в то время как другая позволяет проверять существующие ветки