Что такое Ссылка для отслеживания?



когда я нажимаю новую ветку до удаленного репозитория через расширения Git, я получаю предупреждение, говорящее



The branch {branch name} does not have a tracking reference. Do
you want to add a tracking reference for {branch name}?


что такое ссылка для отслеживания? Я нашел только несколько упоминаний об отслеживании ссылок в Google и никакого реального определения.

664   4  

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

    Ничего не найдено.