Как клонировать или загрузить определенную ветку с Github
Github отлично подходит для хранения файлов, но иногда нужные вам файлы хранятся в другой ветке Git, и к ним нелегко получить доступ с основного сайта. Мы покажем, как загружать и клонировать файлы из других веток.
«Скачать ZIP» будет работать
Github не совсем ясно описывает поведение своей функции загрузки. Если вы переключитесь на другую ветку с помощью раскрывающегося списка, вы продолжите просмотр этой ветки, по крайней мере, до тех пор, пока не перейдете из средства просмотра файлов.

Находясь в ветке, нажав «Загрузить Zip» в раскрывающемся списке «Код», вы перейдете к загрузке для конкретной ветки, в которой вы находитесь. Однако на сайте об этом не сообщается, поэтому вам нужно убедиться, что имя файла для URL-адреса загрузки соответствует правильной ветке, названной в формате reponame-branchname.zip .

То же самое касается прямых загрузок через кнопку «Raw» — они будут ссылаться на определенную ветку, которую вы можете изменить в URL-адресе.

https://raw.githubusercontent.com/username/Repo/Branch/readme.md
Клонирование отдельной ветки (правильный способ)
Однако загрузка в виде zip имеет много недостатков и ломает историю Git. Вы захотите клонировать ветку с помощью команды git clone .
Возможно, вы попробовали это только для того, чтобы случайно загрузить ветку master . Это связано с тем, что даже если вы переключитесь на ветку на веб-сайте, Github предоставит вам только URL для загрузки репозитория. В нем не указано как скачать его.
https://github.com/username/Repo.git
Если вы возьмете этот URL-адрес и запустите git clone , он загрузит ветку по умолчанию, обычно master . Вы можете изменить это с помощью некоторых флагов, обычно это делается одним из двух способов:
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 , не волнуйтесь, вы можете просто переключиться на другую ветку:
git switch dev
Если вы внесли изменения в ветку master не осознавая этого, вы можете перенести эти изменения в новую ветку, используя git checkout вместо -b флаг:
git checkout -b
Вы также можете использовать git stash , который позволяет сохранять изменения и открывать тайник позже:
git stash git switch dev git stash pop
Как клонировать нужную ветку?
Этот вариант склонирует ПОЛНОСТЬЮ весь репозиторий и просто переключится на ветку branch-name:
git clone http://whatever.git -b branch-name
Иногда нужно склонировать ТОЛЬКО конкретную ветку, тогда:
git clone --branch=branch-name http://whatever.git
Еще иногда может потребоваться склонировать репозиторий без многолетней истории его коммитов, тогда нужно использовать параметр —depth=5, где 5 — количество коммитов от последнего:
git clone --depth=1 --branch=branch-name http://whatever.git
A3.2 Приложение C: Команды Git — Клонирование и создание репозиториев
Существует два способа создать Git репозиторий. Первый — клонировать его из существующего репозитория (например, по сети); второй — создать репозиторий в существующем каталоге.
git init
Чтобы превратить обычный каталог в Git репозиторий и начать версионировать файлы в нём, просто запустите git init .
Впервые мы продемонстрировали эту команду в разделе Создание Git-репозитория главы 2 на примере создания нового репозитория для последующей работы с ним.
Мы немного поговорили о смене названия ветки по умолчанию с «master» на что-нибудь другое в разделе Удалённые ветки главы 3.
Мы использовали эту команду для создания чистого репозитория для работы на стороне сервера в разделе Размещение голого репозитория на сервере главы 4.
Ну и наконец мы немного покопались во внутренностях этой команды в разделе Сантехника и Фарфор главы 10.
git clone
На самом деле git clone работает как обёртка над некоторыми другими командами. Она создаёт новый каталог, переходит внутрь и выполняет git init для создания пустого репозитория, затем она добавляет новый удалённый репозиторий ( git remote add ) для указанного URL (по умолчанию он получит имя origin ), выполняет git fetch для этого репозитория и, наконец, извлекает последний коммит в ваш рабочий каталог, используя git checkout .
Команда git clone используется в десятке различных мест в этой книге, но мы перечислим наиболее интересные упоминания.
Первоначальное знакомство происходит в разделе Клонирование существующего репозитория главы 2, где мы даём немного объяснений и приводим несколько примеров.
В разделе Установка Git на сервер главы 4 мы рассмотрели как использовать опцию —bare , чтобы создать копию Git репозитория без рабочей копии.
В разделе Создание пакетов главы 7 мы использовали git clone для распаковки упакованного с помощью git bundle репозитория.
Наконец, в разделе Клонирование проекта с подмодулями главы 7 мы научились использовать опцию —recursive чтобы упростить клонирование репозитория с подмодулями.
И хотя git clone используется во многих других местах в книге, перечисленные выше так или иначе отличаются от других вариантов использования.
GitHub: как клонировать конкретную ветку

Если вы только начинаете работать с ГитХабом и используете веб-интерфейс или GitHub Desktop — сделать даже такую простую вещь, как клонировать конкретную ветку репозитория может быть довольно челленжево. Сделать это можно при помощи Git Bash:
git clone git://github.com//.git cd git checkout /
Запись опубликована в рубрике Git. Добавьте в закладки постоянную ссылку.