Вопрос

Я только начал изучать git, и Учебное пособие, которое я использую, говорит о том, что при клонировании удаленных репозиториев переход на удаленную ветку-это большая нет-нет. То есть, если я клонировал репозиторий с именами ветвей branch1, и я хочу поработать над этим, мне нужно использовать

git checkout --track -b branch1 origin/branch1

чтобы отследить. Однако, когда я пытался использовать

git checkout branch1

Git ответил

Branch branch1 set up to track remote branch branch1 from origin.
Switched to a new branch 'branch1'

Итак, мой здравый смысл говорит мне, что, поскольку этот учебник был написан, разработчики GIT исправили эту ловушку и сделали его так, если кто -то пытается переключиться на удаленную ветку, GIT автоматически делает это правильно и создает локальную филиал, которая его отслеживает. Тем не менее, я не могу найти никаких ссылок на это изменение в примечаниях по выпуску или в поиске Google.

Итак, они это исправили? Безопасно ли просто проверить эти удаленные ветви? Или, может быть, я неправильно понял предупреждение в этом учебнике, и оно относилось к другой ловушке, от которой я должен следить?

Это было полезно?

Решение

Ты не Проверка удаленной ветви.

Проверка branch1 Не то же самое, что проверить «удаленную ветвь». Следующая команда пытается проверить локальный филиал, которого не существует:

git checkout branch1

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

git checkout origin/branch1

что приводит к Отличная голова, возможно, подводная камень, о которой предупреждал учебник.

GIT автоматически создаст локальную филиал и настроит его для отслеживания удаленного с тем же именем, если вы попытаетесь проверить ветвь, которая не существует локально, но имеет одноименную ветвь на пульте.

Другие советы

Из Documentation/RelNotes/1.6.6.txt:

  • «GIT Checkout Frotz», когда нет локальной филиала «Frotz», но есть только один удаленный отслеживающий ветвь «Frotz» в качестве запроса для запуска именованной ветви в соответствующем удаленном отслеживании.

Так что да, разработчики GIT немного упростили процесс: вам не нужно указывать --track -b Больше, чтобы создавать местную филиал удаленного отслеживания. IIRC, прежде чем это изменение GIT использовалось, чтобы жаловаться на пропавшую местную ветвь "Frotz".

Как говорит Мигар, проверка удаленных ветвей все еще возможно, используя git checkout origin/branch1 Синтаксис: это нормально, если вы просто хотите осмотреть, но вы не должны вносить в них постоянные изменения. Вот предупреждение, которое git распечатывает, когда вы проверяете удаленную ветку:

$ git checkout origin/master
Note: checking out 'origin/master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at a48aafd... Merge branch 'maint'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top