J'ai besoin de télécharger l'API Facebook depuis GitHub . Normalement, je clique simplement sur l'onglet "Téléchargements" pour télécharger le dernier code source. Dans ce cas, j'ai besoin d'un commit plus ancien: 91f256424531030a454548693c3a6ca49ca3f35a , mais je ne sais pas comment obtenir le projet complet à partir de ce commit .. .
Est-ce que quelqu'un pourrait m'expliquer comment faire cela?
(BTW, im sur un mac. Je ne sais pas si cela fait une différence).
Commencez par cloner le référentiel à l’aide de git, par exemple. avec:
git clone git://github.com/facebook/facebook-ios-sdk.git
Cela télécharge l'historique complet du référentiel afin que vous puissiez passer à n'importe quelle version. Ensuite, passez au référentiel nouvellement cloné:
cd facebook-ios-sdk
... et utilisez git checkout <COMMIT>
pour changer le bon commit:
git checkout 91f25642453
Cela vous donnera un avertissement, puisque vous n'êtes plus sur une branche et avez basculé directement vers une version particulière. (Ceci est connu sous le nom d'état "HEAD détaché".) Comme il semblerait que vous souhaitiez uniquement utiliser ce SDK, plutôt que de le développer activement, vous n'avez pas à vous en soucier, sauf si vous souhaitez vous renseigner plus sur le fonctionnement de git.
Je ne sais pas si c'était là lorsque vous avez posté cette question, mais le meilleur moyen de télécharger un commit est de cliquer sur l'onglet commits lorsque vous consultez un référentiel. Ensuite, au lieu de cliquer sur le nom de validation, cliquez sur Parcourir le référentiel à cet endroit du bouton Historique avec le symbole <> à droite du nom/message de validation, et enfin sur le symbole Télécharger le bouton Zip qui apparaît lorsque vous cliquez sur le bouton Cloner ou Télécharger.
J'espère que ça vous aide les gars.
Le moyen le plus simple que j'ai trouvé pour récupérer un commit perdu (qui n'existe que sur github et pas localement) est de créer une nouvelle branche incluant ce commit.
git pull
la nouvelle branche en localPour télécharger simplement un commit en utilisant la forme abrégée SHA1 à 7 chiffres, procédez comme suit:
Exemple de travail:
https://github.com/python/cpython/archive/31af650.Zip
La description:
`https://github.com/username/projectname/archive/commitshakey.Zip`
Si vous avez la longue clé de hachage
31af650ee25f65794b75d4dfefed6fe4758781c1
, obtenez simplement les 7 premiers caractères31af650
. C'est la valeur par défaut pour GitHub.
En plus de la réponse acceptée:
Pour voir les hachages, vous devez utiliser la commande suggérée "git checkout hash ", vous pouvez utiliser git log
. Cependant, selon vos besoins, il existe un moyen plus simple que de copier/coller des hachages.
Vous pouvez utiliser git log --oneline
pour lire de nombreux messages de validation dans un format plus compressé.
Disons que vous voyez ceci une liste d'une ligne des commits avec un minimum d'informations et des hachages seulement partiellement visibles:
hash111 (HEAD -> master, Origin/master, Origin/HEAD)
hash222 last commit
hash333 I want this one
hash444 did something
....
Si vous voulez last commit
, vous pouvez utiliser git checkout master^
. Le ^
vous donne le commit avant le maître. Alors hash222
.
Si vous voulez le n-ième dernier commit, vous pouvez utiliser git checkout master~n
. Par exemple, utiliser git checkout master~2
vous donnerait le commit hash333
.
Le titre de la question est ambigu.