Как скачать или клонировать ветку GitHub

Быстрые ссылки
- «Download ZIP» работает для выбранной ветки
- Как клонировать одну ветку правильно
- Как исправить репозиторий, скачанный с основной ветки
GitHub отлично подходит для хранения файлов, но иногда нужные файлы находятся в другой ветке и их не так просто найти через веб-интерфейс. Ниже показано, как скачать или клонировать файлы из других веток и как исправить ситуации, когда вы случайно скачали неверную ветку.
Как работает «Download ZIP»
Если на сайте переключиться на другую ветку через выпадающий список, вы останетесь в просмотре этой ветки до тех пор, пока не уйдёте с просмотрщика файлов. Когда вы находитесь на ветке, нажатие «Download ZIP» в меню «Code» приведёт к скачиванию архива именно той ветки, на которой вы сейчас.

GitHub не всегда явно сообщает, какую ветку содержит скачиваемый ZIP, поэтому проверьте имя файла архива: оно должно иметь формат
reponame-branchname.zip
То же касается прямых загрузок через кнопку «Raw» — URL привязан к конкретной ветке, и вы можете сменить ветку прямо в URL:
https://raw.githubusercontent.com/username/Repo/Branch/readme.mdЕсли вы скачиваете отдельный файл через Raw, убедитесь, что в пути указана нужная ветка.
Важно: «Download ZIP» удобен для быстрого скачивания, но он не сохраняет историю коммитов и не позволяет работать с Git‑логом.
Клонирование одной ветки (правильный способ)
Скачивание ZIP имеет недостатки: вы не получите истории коммитов и не сможете легко переключаться между ветками. Для полноценной работы используйте git clone.
Если вы просто скопировали URL репозитория вида
https://github.com/username/Repo.gitи выполнили git clone, Git скачает дефолтную ветку (часто это master или main). Чтобы сразу клонировать и checkout нужную ветку, используйте один из вариантов:
git clone --branch dev https://github.com/username/Repo.gitили, чтобы ограничить объём загружаемых данных только одной веткой:
git clone --branch dev --single-branch https://github.com/username/Repo.gitПервый вариант клонирует весь репозиторий и поставит вас на ветку dev. Второй скачивает только историю для указанной ветки и подходит, когда репозиторий большой и другие ветки вам не нужны.
Когда выбирать –single-branch
- Репозиторий содержит много больших веток, и вам нужна только одна.
- Ограничение трафика или места на диске важно.
Короткая памятка
- git clone –branch <ветка>
— клонирует и переключается на ветку. - –single-branch — ограничивает fetch только этой веткой.
Исправление репозитория, если вы уже клонировали master/main
Если вы уже выполнили git clone без флага и оказались на master/main, не нужно заново клонировать репозиторий. Переключитесь на нужную ветку:
git switch devЕсли вы сделали коммиты или изменили файлы на master, но хотите перенести эти изменения в новую ветку, создайте ветку и переключитесь на неё, затем переместите изменения:
# создать и сразу переключиться на новую ветку
git checkout -b feature-branch
# или с новой версией Git
git switch -c feature-branchЕсли изменения не закоммичены и вы хотите временно сохранить рабочее состояние, используйте stash:
git stash
git switch dev
git stash popStash сохраняет незакоммиченные изменения и позволяет применять их в другой ветке.
Шпаргалка команд (быстрая)
- Клонировать и сразу открыть ветку:
git clone --branch <ветка> - Клонировать только одну ветку:
git clone --branch <ветка> --single-branch - Переключиться на существующую ветку:
git switch <ветка> - Создать и перейти на новую ветку:
git checkout -b <новая-ветка>илиgit switch -c <новая-ветка> - Сохранить рабочие изменения:
git stash - Восстановить сохранённый stash:
git stash pop
Когда это может не сработать
- Веб-интерфейс показывает ветку, но ссылка в адресной строке ведёт на корневой URL репозитория. Всегда проверяйте URL скачиваемого архива или raw-файла.
- Если у вас нет прав доступа к приватному репозиторию, ни скачивание через ZIP, ни git clone не сработают: нужен доступ по HTTPS с аутентификацией или SSH‑ключ.
- При использовании
--single-branchвы не сможете проверить или получить файлы из других веток без дополнительного fetch.
Альтернативные подходы
- Использовать архивную ссылку через GitHub API для скачивания конкретной ветки программно.
- Клонировать зубцами (shallow clone) для экономии трафика:
git clone --depth 1 --branch <ветка>— скачивает только последний коммит ветки. - Использовать SSH‑клонирование, если настроены ключи:
git clone git@github.com:username/Repo.git.
Критерии приёмки
- Вы скачали файлы именно из нужной ветки (имя архива или содержимое соответствует ветке).
- История коммитов доступна, если нужен Git‑контекст (только при клонировании, не при ZIP).
- Локальные изменения, сделанные до переключения ветки, сохранены или перенесены.
Короткий глоссарий
- Ветка — отдельная линия разработки в Git.
- master/main — традиционная (дефолтная) ветка репозитория.
- stash — временное хранилище незакоммиченных изменений.
- –single-branch — опция, ограничивающая скачивание историей одной ветки.
Итог
Используйте «Download ZIP» для быстрого скачивания файлов из видимой ветки. Для интегрированной работы и истории используйте git clone --branch (и при необходимости --single-branch или --depth). Если вы уже клонировали дефолтную ветку, переключитесь на нужную ветку или перенесите изменения через checkout -b / switch -c или stash.
Note: Проверьте права доступа и URL перед скачиванием, особенно для приватных репозиториев.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone