Git: клонирование определённой ветки
Последнее обновление
По умолчанию git clone переключается на ветку репозитория по умолчанию (обычно main), но скачивает все ветки. Чтобы начать с другой ветки, добавьте -b <branch>. Чтобы получить только эту ветку и пропустить остальные - удобно для больших репозиториев или CI - также передайте --single-branch.
Попробуйте эти команды в терминальном playground - настоящей оболочке в вашем браузере, ничего не нужно устанавливать.
Синтаксис
| Command | What it does |
|---|---|
git clone -b dev <url> | Клонирует и переключается на ветку dev |
git clone -b dev --single-branch <url> | Клонирует только историю ветки dev |
git clone <url> then git switch dev | Клонирует всё, затем переключается |
Какой подход выбрать
| Goal | Command |
|---|---|
| Начать с ветки, сохранив все ветки | git clone -b dev <url> |
| Нужна только одна ветка | git clone -b dev --single-branch <url> |
| Уже клонировали, нужна другая ветка | git fetch then git switch dev |
Часто задаваемые вопросы о клонировании определённой ветки в Git
Как клонировать определённую ветку в Git?
Выполните
git clone -b <branch> <url> (или длинную форму --branch). Git клонирует репозиторий и переключается на указанную вами ветку вместо ветки по умолчанию. Все остальные ветки всё равно скачиваются, если только вы не передадите ещё и --single-branch.Как клонировать только одну ветку и ничего больше?
Скомбинируйте флаги:
git clone -b <branch> --single-branch <url>. Так скачивается только история указанной ветки, а все остальные пропускаются - меньший и более быстрый клон, полезный для больших репозиториев или пайплайнов CI, которым нужна лишь одна ветка.Могу ли я переключиться на другую ветку после клонирования одной ветки?
Не напрямую, потому что остальные ветки не были получены. Сначала укажите Git получить их -
git remote set-branches origin '*', затем git fetch - после чего вы сможете выполнить git switch на любую ветку. Если вы ожидаете, что понадобится несколько веток, лучше сделайте обычное клонирование.В чём отличие от простого клонирования с последующим переключением?
Обычный
git clone <url>, за которым следует git switch <branch>, даёт вам все ветки, а затем переходит к нужной - подходит для повседневного использования. git clone -b сразу помещает вас на эту ветку, а с --single-branch он ещё и избегает скачивания остального.Могу ли я потренироваться в этом онлайн?
Да. Откройте терминальный playground, чтобы выполнить
git clone в настоящей оболочке в вашем браузере - ничего не нужно устанавливать. Бесплатный интерактивный курс по Git от Coddy также пошагово рассказывает, как получить репозиторий.