В Git, когда речь идет об удаленных ветках, термины tracked
и untracked
описывают, как ваш локальный репозиторий связан с удаленным. Важно понимать, что локальные ветки могут "отслеживать" удаленные ветки.
Tracked (Отслеживаемая) Удаленная Ветка:
Tracked
удаленная ветка - это удаленная ветка, для которой существует связь отслеживания с вашей локальной веткой. Это означает, что Git "знает", какая удаленная ветка соответствует вашей локальной ветке. Эта связь устанавливается при создании локальной ветки из удаленной ветки или при явном указании отслеживающей ветки с помощью команды git branch --set-upstream-to=origin/ветка локальная_ветка
.
git pull
и git push
упрощаются. Git автоматически знает, откуда брать изменения (pull) и куда их отправлять (push). Вам не нужно указывать удаленный репозиторий и ветку при каждом выполнении этих команд.
git status
также показывает, отстает ли ваша локальная ветка от удаленной ветки, или опережает её.
feature/new-feature
из удаленной ветки origin/feature/new-feature
, то feature/new-feature
будет отслеживать origin/feature/new-feature
.
Untracked (Неотслеживаемая) Удаленная Ветка:
Untracked
удаленная ветка - это удаленная ветка, которую ваш локальный репозиторий "видит" (например, в списке удаленных веток, возвращаемом git branch -r
или git remote show origin
), но для которой у вас нет локальной ветки, отслеживающей ее.
git checkout -b локальная_ветка origin/удаленная_ветка
. Эта команда создаст локальную ветку локальная_ветка
и установит ее для отслеживания удаленной ветки origin/удаленная_ветка
.
origin
есть ветка origin/hotfix/bug-123
. Если у вас нет локальной ветки, отслеживающей origin/hotfix/bug-123
, то origin/hotfix/bug-123
считается неотслеживаемой.
Вкратце:
Tracked
: Есть локальная ветка, связанная с удаленной веткой. Git знает, куда push и откуда pull.
Untracked
: Ваш репозиторий знает об удаленной ветке, но у вас нет локальной ветки, отслеживающей её. Вам нужно создать локальную ветку и настроить отслеживание, если вы хотите с ней работать.