Git: Переключение на удалённую ветку
Последнее обновление
Чтобы работать с веткой, которая существует на удалённом репозитории, но ещё не на вашей машине, сначала выполните git fetch, чтобы Git узнал о ней, а затем переключитесь на неё. Современный Git упрощает это: git switch <branch> автоматически создаёт локальную ветку, отслеживающую соответствующую origin/<branch>.
Попробуйте это в терминальном playground - настоящая оболочка в вашем браузере, ничего не нужно устанавливать.
Синтаксис
| Command | What it does |
|---|---|
git fetch origin | Загружает ветки удалённого репозитория |
git switch feature | Создаёт локальную feature, отслеживающую origin/feature |
git checkout --track origin/feature | Старый способ отслеживать удалённую ветку |
git switch -c local origin/feature | Отслеживать её под другим локальным именем |
Разобранный пример
Получите ветку коллеги на свою машину.
| Step | Command | Result |
|---|---|---|
| 1 | git fetch origin | Git узнаёт о origin/feature |
| 2 | git switch feature | Локальная feature создана и отслеживает удалённую |
| 3 | git pull | Поддерживайте синхронизацию в дальнейшем |
Git checkout удалённой ветки: вопросы и ответы
Как переключиться на удалённую ветку?
Сначала выполните
git fetch origin, чтобы Git узнал о ветках удалённого репозитория, затем git switch <branch>. Современный Git видит соответствующую origin/<branch> и автоматически создаёт локальную ветку, отслеживающую её. В старом Git используйте git checkout --track origin/<branch>.Почему git switch говорит, что ветка не существует?
Обычно потому, что вы ещё не выполнили fetch - Git может автоматически создать отслеживающую ветку, только если уже знает об удалённой ветке. Сначала выполните
git fetch origin (или git fetch --all), затем git switch <branch> заработает.Как переключиться на удалённую ветку под другим именем?
Используйте
git switch -c <localname> origin/<branch> (или git checkout -b <localname> origin/<branch>). Это создаёт локальную ветку с выбранным вами именем, отслеживающую удалённую ветку - удобно, когда удалённое имя конфликтует с существующей локальной веткой.В чём разница между fetch и checkout здесь?
git fetch только загружает удалённые ветки и обновляет ваши ссылки отслеживания удалённого репозитория - он не даёт вам рабочую ветку. Переключение (через git switch или git checkout) - это то, что создаёт локальную ветку, с которой вы действительно работаете. Вы делаете fetch один раз, затем checkout.Можно ли попрактиковаться в этом онлайн?
Да. Откройте терминальный playground, чтобы выполнить эти команды в настоящей оболочке в вашем браузере - ничего не нужно устанавливать. Бесплатный интерактивный курс Git от Coddy также пошагово охватывает работу с удалёнными репозиториями.