Comment télécharger .zip depuis GitHub pour un sha de commit particulier?

106

Je veux télécharger un .zip avec la source d'une bibliothèque hébergée sur github, mais je ne veux pas du maître, car à chaque fois que je télécharge, je pourrais télécharger une version différente.

Cette bibliothèque particulière n'a pas de balises, donc je ne peux pas l'utiliser.

Alors, comment télécharger le source.zip pour un sha de commit spécifique?

ChocoDeveloper
la source
3
Cela n'a pas besoin d'être balisé avec php ou composer-php, n'est-ce pas?
Cacovsky

Réponses:

218

Vous pouvez mettre le sha que vous voulez dans l'url de téléchargement:

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

En règle générale, si vous avez une URL qui fonctionne, vous pouvez remplacer "master" par le sha spécifique que vous souhaitez.

Sur unix:

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

Gardez à l'esprit que s'il s'agit d'un dépôt privé, wget ne fonctionnera que si vous transmettez également un jeton OAuth.

Voici plus d'informations à ce sujet:

Avoir des difficultés à télécharger les archives tar d'archives Git à partir du dépôt privé

Zeki
la source
7
Je ne m'attendais pas à cette (cool) façon de le faire.
J'attendais des
Vérifiez ce lien ainsi - Peut être à la recherche de ce lieu stackoverflow.com/a/48503019/341117
Ravindra Gullapalli
Vous pouvez également utiliser le sha court!
wjandrea
Même si j'utilise wget -Opour renommer le fichier ZIP d'archive, une fois décompressé, j'obtiens un gros nom de répertoire SHA1 laid. Un moyen d'éviter cela?
QED
40

Lors de la visualisation du code du commit, cliquez sur le bouton "Parcourir le code" en haut à droite, puis cliquez sur "Télécharger le ZIP".

user2722591
la source
1
Ils ont maintenant un bouton «Cloner ou Télécharger», où vous pouvez «Télécharger ZIP».
SureshS
"Cloner ou Télécharger" est le nouveau bouton qui remplace les anciens boutons "Cloner" et "Télécharger". Le nouveau bouton ne fait pas de versions spécifiques - utilisez la façon dont Zeki l'a décrit
pal
3
Cela a fonctionné pour moi en février 2017. Il a téléchargé le dépôt avec les modifications à l'horodatage du commit sélectionné.
ocean4dream
7

C'est une vieille question, mais je voulais mentionner que si vous ne voulez que le commit en tant que patch, et non tout le dépôt au moment du commit, vous pouvez utiliser:

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

Les parties /commitet .patchétant la partie importante.

Cela est particulièrement utile si vous souhaitez fusionner une modification qui a été annulée il y a quelque temps et qui n'existe donc pas dans le dépôt fourchu.

cheval de Troie
la source