Как скачать репозиторий GitHub в формате .zip с помощью командной строки

9

Я пытаюсь загрузить ZIP-файл из GitHub с помощью командной строки в Ubuntu. Я использую wgetкоманду для этого в удаленной системе Ubuntu.

Я бегу, wget <link>где <link>находится ссылка в адресной строке файла, который я хочу скачать. Это заканчивается archive.zip?ref=master.

Теперь, когда я выполняю команду, она загружает файл с text/htmlтипом, а не .zipфайл, который я хочу.

Подскажите пожалуйста, как получить ссылку, которая будет указана в качестве параметра wget. Прямо сейчас я просто копирую адрес ссылки кнопки (используя правый клик) и записываю ее в качестве wgetпараметра.

UbuntuCoder
источник
Вы можете сказать точную команду, которую вы вставляете?
kashish
1
Ваш URL действительно заканчивается на .zip?
kashish
@kashish Нет, URL не заканчивается на .zip. Я пытаюсь загрузить проект с GitHub, и у него есть кнопка загрузки, дающая zip и другие параметры. Итак, я пытаюсь оттуда. это заканчивается на archive.zip?ref=master
UbuntuCoder
Чтобы скачать проект на github, вы можете использоватьgit clone <projectlink.git>
kashish
1
Если я не ошибаюсь, можно скачать репозиторий в виде Zip-файла по следующему адресу:https://github.com/{user}/{repo}/archive/{branch}.zip
Алексей Черменин

Ответы:

11

Из комментариев я видел, что вы на самом деле говорите о GitHub.

Это не будет работать, потому что:

Загрузка проекта на GitHub приводит к тому, что сервер GitHub сначала упаковывает ваш проект в zip, а затем перенаправляет вас на временную ссылку, где вы получаете свой zip.

эта ссылка будет работать только в течение определенного времени, а затем GitHub удалит ваш zip-файл со своих серверов.

Итак, что вы получаете с помощью wget - это просто html-страница, которая перенаправит вас, как только ваш zip-файл будет создан.

Как предлагается использовать

git clone http://github.com/<yourRepoLink> <optional local path where to store>

загрузить репозиторий git ... Если по какой-то причине (например, для передачи другим) вам это нужно явно как zip, вы все равно можете упаковать его после завершения клонирования.

derHugo
источник
2
После клонирования сделайте git archive -o output.zip, если все еще нужен zip-файл
Ferrybig
git cloneработает, естественно, но бывают случаи, когда не имеет смысла устанавливать git просто для загрузки репозитория.
Робин Метрал
0

Это работает, если вы используете правильный URL. Для репозитория GitHub есть zip https://github.com/user/repo/archive/master.zip, поэтому вы можете скачать его с помощью:

wget https://github.com/user/repo/archive/master.zip

Это скачивает masterветку user/repo. Вы можете заменить master на любую другую ветку или хеш коммита.

Это похоже на использование cURL с:

curl -L https://github.com/user/repo/archive/master.zip

-LФлаг cURL следует за перенаправлениями - это значение по умолчанию в wget.

Обратите внимание, что вы также можете скачать архив с:

wget https://github.com/user/repo/archive/master.tar.gz
Робин Метрал
источник