Что такое Ссылка для отслеживания?
когда я нажимаю новую ветку до удаленного репозитория через расширения Git, я получаю предупреждение, говорящее
The branch {branch name} does not have a tracking reference. Do
you want to add a tracking reference for {branch name}?
что такое ссылка для отслеживания? Я нашел только несколько упоминаний об отслеживании ссылок в Google и никакого реального определения.
4 ответов:
основная идея заключается в том, что существуют чисто локальные ссылки (например, ветви, теги), а затем есть ссылки удаленного отслеживания, которые следуют за тем, что происходит в других репозиториях. Поскольку Git децентрализован, вы можете выбрать имя для ветви, которое совпадает с тем, которое используется в удаленном режиме, не зная о другом, так что они имеют совершенно другую работу над ними. Git позволяет вам это сделать, но он также предоставляет способ связать локальные ссылки с удаленными, как что ж.
например, рассмотрим следующее:
% git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/maint remotes/origin/master remotes/origin/next remotes/origin/pu remotes/origin/todoздесь у нас есть филиалы на
originпод названиемnextиtodo.% git checkout -t remotes/origin/next Branch next set up to track remote branch next from origin. Switched to a new branch 'next' % git branch todoтеперь у нас есть местное отделение
nextкоторый отслеживает удаленную ветвь с тем же именем и локальную ветвьtodoэто не будет обновляться с изменениями вremotes/origin/todo.
отличный блог Ника Куранто git ready после объяснения удаленное отслеживание филиалов:
ветви дистанционного отслеживания имеют несколько различных целей:
Они привыкли, что ты работаешь на местном уровне по сравнению с тем, что на пульте дистанционного управления.
Они автоматически узнают, из какой удаленной ветки получать изменения когда вы используете git pull или git привести.
еще лучше, статус git распознает его, сколько коммитов вы находитесь перед удаленным филиалом.
локальная ветвь git может отслеживать удаленную ветвь, что означает, что команды git push и git pull будут знать, чтобы нажимать и тянуть фиксации в и из отслеживаемой ветви по умолчанию. Кроме того, git status сообщит статус между вашим текущим локальным филиалом и удаленной веткой, которую он отслеживает. Когда вы клонируете репозиторий git, git добавит ссылку отслеживания в локальную главную ветвь для отслеживания удаленной главной ветви. При выписке из новой удаленной ветки git добавит ссылку для отслеживания в созданную локальную ветвь для отслеживания удаленной ветви, которую вы проверили.
однако, если вы создадите новую ветвь локально, а затем переместите ее в удаленный репозиторий, вы должны явно сообщить git, если вы хотите, чтобы ваша локальная ветвь начала отслеживать новую удаленную ветвь. Вы делаете это с
-uили--set-upstreamопция при перемещении локальной ветви в удаленный репозиторий:git push -u origin my-new-branch.вы можете проверить, какие удаленные ветви ваши локальные ветви отслеживают (если таковые имеются) с помощью команда
git branch -vvНиже приведен небольшой пример вывода.b1 560eb64 Added file.txt b2 560eb64 [origin/b2] Added file.txt b3 b638c18 [origin/r1: ahead 1] Added file3.txt * master 560eb64 [origin/master] Added file.txtв этом случае у нас есть местные отделения
master,b1,b2иb3. Элементmasterфилиал отслеживает удаленную ветку под названиемmasterнаb1филиал не отслеживает никаких удаленных филиалов,b2филиал отслеживает удаленную ветку под названиемb2иb3филиал отслеживает удаленную ветку под названиемr1.git branch -vvтакже показывает состояние ветви, связанной с отслеживаемой ветвью. Вот веткаb3это 1 фиксация перед отслеживаемой удаленной ветвью, а другие ветви обновлены с их соответствующими удаленными отслеживаемыми ветвями.Итак, если вы создаете локальную ветку и нажимаете на удаленный репозиторий, вы хотите добавить ссылку на отслеживание в ветку или нет? Обычно, когда вы нажимаете новую локальную ветвь в удаленное хранилище, вы делаете это для совместной работы с другими разработчиками над функцией. Если вы добавите ссылку для отслеживания в свой локальный филиал, вы можете удобно тянуть изменения, которые другие люди внесли в ветку, поэтому я бы сказал, что в большинстве случаев вы хотите добавить ссылку отслеживания.
да, вы, вероятно, хотите добавить его. сделайте это в консоли: git branch --set-upstream-to origin / master
Comments