Поиск по сайту:

Как клонировать или загрузить определенную ветку с 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