Как скачать .zip с GitHub для конкретного коммита?


106

Я хочу загрузить .zip с исходным кодом библиотеки, размещенной на github, но мне не нужен мастер, потому что каждый раз, когда я загружаю, я могу загружать другую версию.

В этой конкретной библиотеке нет тегов, поэтому я не могу ее использовать.

Итак, как мне загрузить source.zip для определенного ша фиксации?


3
Это не нужно помечать тегами php или composer-php, не так ли?
Cacovsky

Ответы:


218

Вы можете указать ша, который хотите, в URL-адресе загрузки:

https://github.com/{username}/{projectname}/archive/{sha}.zip

Как правило, если у вас есть работающий URL, вы можете заменить «master» на конкретный sha, который вам нужен.

В unix:

wget https://github.com/{username}/{projectname}/archive/{sha}.zip

Имейте в виду, что если это частное репо, wget не будет работать, если вы также не передадите токен OAuth.

Подробнее об этом:

Проблемы с загрузкой архивов Git из Private Repo


7
Не ожидал такого (крутого) способа сделать это.
Ожидал

Также проверьте эту ссылку - возможно, вы ищете это вместо этого stackoverflow.com/a/48503019/341117
Равиндра Гуллапалли

Вы также можете использовать короткое ша!
wjandrea

Даже если я использую wget -Oдля переименования архивного ZIP-файла, при распаковке я получаю большое уродливое имя каталога SHA1. Есть ли способ избежать этого?
QED

40

При просмотре кода фиксации нажмите кнопку «Обзор кода» в правом верхнем углу, после чего нажмите «Загрузить ZIP».


1
Теперь у них есть кнопка «Клонировать или скачать», где вы можете «Скачать ZIP».
SureshS

«Клонировать или загрузить» - это новая кнопка, которая заменяет старые кнопки «Клонировать» и «Загрузить». Новая кнопка не имеет конкретных версий - используйте способ, описанный Зеки
приятель

3
У меня это сработало в феврале 2017 года. Он загрузил репо с изменениями на отметке времени выбранной фиксации.
ocean4dream

7

Это старый вопрос, но хотелось упомянуть, что если вы хотите только фиксацию в качестве патча, а не все репо во время фиксации, вы можете использовать:

$ wget http://github.com/username/repo/commit/sha1.patch
#                        ^^^^^^^^ ^^^^        ^^^^
#                        change   change      change

/commitИ .patchчасти являются важной частью.

Это особенно полезно, если вы хотите объединить изменение, которое было отменено некоторое время назад и поэтому не существует в разветвленном репо.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.