Ответ 1
Это хороший вопрос о особенно раздражающей бит терминологии git, хотя и тот, который, по-видимому, медленно фиксирует проект.
В принципе, "дорожка" означает что-то совсем другое в выражениях: (a) "ветвь удаленного отслеживания" и (b) "branch1
настроена для отслеживания удаленной ветки branch1
от origin
". Вот краткое резюме:
- ветвь удаленного отслеживания: ветки удаленного отслеживания - это ветки, которые обычно обновляются с помощью
git fetch
и, следовательно,git pull
.¹ Вы можете думать о них как кэш состояния ветки в удаленном репозитории. Вы можете слиться с ними, изучить их историю и т.д., Но вы не можете напрямую работать с ними. "Трек" в этой фразе означает, что ветвь удаленного отслеживания представляет состояние ветки в удаленном репозитории при последнем обновлении ветки удаленного отслеживания. - Филиал foo настроен для отслеживания удаленной ветки панели из источника: в этой фразе вам сообщается, что git установил переменные конфигурации, которые связывают вашу локальную ветвь
foo
с ветвь удаленного отслеживанияorigin/bar
. Это позволяет создавать приятные функции, например, просто ввестиgit pull
, пока вы находитесь на веткеfoo
, чтобы получить и затем слить изorigin/bar
. Также, как вы получаете полезные сообщения о состоянии вашего ветки относительно ветки удаленного отслеживания, например "Ваша веткаfoo
составляет 24 фиксации передorigin/bar
, можно быстро пересылать". Вам сообщают, что ваш локальный филиалотслеживаетсвязан с ветвью удаленного отслеживания. Вы также слышите, что это называетсяorigin/bar
, находящимся выше по течению относительноfoo
.
Итак, эти чувства трека/трекинга совершенно разные, и, к сожалению, это общий источник путаницы.
Второе чувство, кажется, медленно устарело, однако, например, одним из возможных вариантов push.default
было tracking
, но теперь оно устарело в пользу имени параметра upstream
.
Итак, чтобы ответить на ваши вопросы напрямую:
В силу того, что ветвь1 настроена для отслеживания ветки удаленной ветки 1 от начала, является ли "ветвь 1" рассмотренной как ветвь удаленного отслеживания?
Нет, branch1
не является ветвью удаленного слежения.
При запуске 'git checkout -b branch1 origin/branch1', я создаю локальную ветвь (тему), на которую я могу добавить фиксацию, которая отслеживает удалённую ветвь путем извлечения?
Ну, вроде - это отслеживание (смысл 2) ветки удаленного отслеживания, а последняя обновляется из ветки в удаленном репозитории по выборкам. (Лично я стараюсь избегать термина "удаленная ветвь", в пользу "ветки в удаленном репозитории", на всякий случай, если люди думают, что вы имеете в виду ветку удаленного отслеживания.)
Запуск 'git branch' теперь дает: '* branch1', а запуск 'git branch -r' по-прежнему дает 'origin/branch1' и 'origin/branch2'. Я создал branch1 для добавления коммитов и отслеживания origin/branch1. Что считается ветвью удаленного отслеживания, "branch1" из вывода "git branch" или "origin/branch1" из вывода "git branch -r"?
Отслеживание удаленного отслеживания origin/branch1
.
¹ Они также обновляются, когда вы делаете успешный git push
в соответствующую ветку в удаленном репозитории.