Віддалено-відстежувана гілка
Якщо твій репозиторій під'єднано до віддаленого репозиторію (наприклад, origin), у тебе зазвичай буде два набори гілок:
-
Локальні гілки — звичайні гілки, у яких ти працюєш.
-
Віддалено-відстежувані гілки — особливі гілки тільки для читання, які відображають стан гілок у віддаленому репозиторії. Їхні назви мають формат
<remote-name>/<branch-name>(наприклад,origin/main).
Чим вони корисні?
-
Порівнювати локальні гілки з віддаленими. Команди на кшталт
git logабоgit diffвідносноorigin/mainпокажуть, що змінилося у віддаленому репозиторії, не чіпаючи твоє робоче дерево. -
Відновлювати зіпсовані локальні гілки. Якщо локальна гілка пішла не туди, її можна скинути до стану віддалено-відстежуваної гілки (наприклад,
git switch main, а потімgit reset --hard origin/main). -
Створювати нові гілки. Треба почати роботу з чогось, що існує тільки у віддаленому репозиторії? Створи локальну гілку з віддалено-відстежуваної:
git switch -c feature origin/feature.
Звідки вони беруться?
-
Після клонування репозиторію всі гілки з віддаленого репозиторію копіюються в твій локальний репозиторій як віддалено-відстежувані. Але тільки типова гілка розгортається як повноцінна локальна.
Наприклад, якщо у віддаленому репозиторії є гілки
main,feature-1іfeature-2, у твоєму локальному репозиторії з'являться віддалено-відстежувані гілкиorigin/main,origin/feature-1іorigin/feature-2, але лишеmainбуде розгорнута як локальна гілка. -
Команда
git fetchоновлює наявні віддалено-відстежувані гілки у твоєму репозиторії та створює нові, якщо у віддаленому репозиторії з'явилися нові гілки.Якщо гілку видалено з віддаленого репозиторію, відповідна віддалено-відстежувана гілка все одно залишиться локально, доки не буде прибрана командоюgit fetch --prune. Git ніколи не викидає дані без твоєї явної згоди. -
Команда
git pull— це те саме, щоgit fetch, а слідомgit merge(абоgit rebase), тож вона теж оновлює віддалено-відстежувані гілки.
.gitignoregit checkoutgit configgit taggit worktree