2011-10-20 23 views
98

Necesito descargar la API de Facebook de GitHub. Normalmente, solo hago clic en la pestaña 'Descargas' para descargar el último código fuente. En este caso, necesito una confirmación anterior: 91f256424531030a454548693c3a6ca49ca3f35a, pero no tengo idea de cómo obtener el proyecto completo de esa confirmación ...Cómo obtener cierta confirmación del proyecto GitHub

¿Puede alguien decirme cómo hacer esto

(por cierto, im en un mac no sabemos si hay alguna diferencia.)

+1

vea también http://stackoverflow.com/questions/13636559/how-to-download-zip-from-github-for-a-particular-commit-sha si solo "necesita" el archivo comprimido -snapshot-code ". –

+1

Debería considerar cambiar su respuesta aceptada, la más votada es mucho más simple. –

Respuesta

138

en primer lugar, clonar el repositorio git utilizando, por ejemplo, con:?.

git clone git://github.com/facebook/facebook-ios-sdk.git 

Eso descarga la historia completa del repositorio sitory, por lo que puede cambiar a cualquier versión. A continuación, el cambio en el repositorio recién clonado:

cd facebook-ios-sdk 

... y utilizar git checkout <COMMIT> para cambiar a la derecha comprometerse:

git checkout 91f25642453 

Eso le dará una advertencia, ya que ya no está en una rama, y ​​han cambiado directamente a una versión particular. (Esto se conoce como estado "HEAD separado"). Como parece que solo quieres usar este SDK, en lugar de desarrollarlo activamente, no es algo de lo que tengas que preocuparte, a menos que estés interesado en descubrirlo. más sobre cómo funciona git.

+4

En este punto también puede 'git export' si solo quiere los archivos. – Xeoncross

103

No sé si estaba allí cuando publicó esta pregunta, pero la mejor y más fácil forma de descargar una confirmación es hacer clic en la ficha commits al ver un repositorio. Entonces, en lugar de hacer clic en el nombre de cometer, haga clic en navegar en el repositorio en este punto en el botón de la historia con <> símbolo a la derecha del nombre de comprometerse/mensaje, y, finalmente, en la Botón de la transferencia postal que aparece cuando hace clic en Clonar o descargar el botón.

Espero les ayude chicos.

+9

Mucho más fácil. Gracias. – ow3n

+3

Esta es la única forma de recuperar "commits perdidos" que son commits de los que github tiene un historial, pero que fueron borrados de la línea de tiempo "oficial" de git. Al usar esto, puedes obtener una instantánea zip de una confirmación que fue rediseñada al olvido, enviar esa confirmación a una nueva rama, buscar esa rama en un repositorio existente y volver a crearla. – Ajax

+0

@Ajax Eso no es verdad. Aún puede obtener el sha con 'git reflog', y luego extraer el compromiso separado –

15

respuesta de Sivan en formato gif enter image description here

1.Click sobre comete en github

2.Select Navegar código en el lado derecho de cada confirmación

3.Click de descarga zip, que descargará código fuente en ese punto de tiempo de compromiso

+0

Hola suraj, ¿puedes decirme cómo creaste el gif de tu pantalla? –

+0

usa el reproductor de tiempo rápido para grabar un video de la pantalla. Realiza la conversión de video a GIF usando cualquier herramienta disponible .Google it @ Rahul Satal –

+0

Gracias @SurajKThomas por el gif – Sivan

3

La manera más fácil que encontré para recuperar una confirmación perdida (que solo existe en github y no localmente) es crear una nueva rama que incluya este compromiso.

  1. Tener la confirmación abierta (como url: github.com/org/repo/commit/long-commit-sha)
  2. Haga clic en "Examinar archivos" en la parte superior derecha
  3. Haga clic en el menú desplegable "Árbol : corto-sha ..."En la parte superior izquierda
  4. Introduzca un nuevo nombre de la sucursal
  5. git pull la nueva rama a locales
+0

Esta respuesta es más general que la aceptada. Conocí esta situación porque la confirmación que quería desapareció en la rama principal, y Github no guardará todas las confirmaciones en las ramas no existentes. Por lo tanto, este enfoque creará una nueva rama a partir de ese compromiso en Github y lo hará accesible. –

+0

Esto me permitió recuperar una confirmación (con SHA original intacto) de una bifurcación eliminada de la que hice una PR. Después de crear una nueva bifurcación, abrí el compromiso de PR en el repositorio de subida y luego "examiné los archivos". Luego copié esa URL y reemplacé el nombre de usuario por el mío.Luego hice clic en el menú desplegable Árbol: y creé una nueva rama en mi tenedor. Funcionó muy bien! –

0

Si desea ir con cualquier cierta cometer o querer código de cualquier cierta comprometerse entonces usted puede utilizar a continuación comando:

git reset --hard <commit ID which code you want> 
git push --force 

Ejemplo:

git reset --hard fbee9dd 
git push --force 
+0

Esto es peligroso, tiene más sentido clonar el repositorio y pagar una versión – user1767754

2

Para sólo tiene que descargar ac ommit utilizando la forma corta SHA1 7 dígitos hacer:

Ejemplo de trabajo:

https://github.com/python/cpython/archive/31af650.zip 

Descripción:

`https://github.com/username/projectname/archive/commitshakey.zip` 

Si tiene el largo clave hash 31af650ee25f65794b75d4dfefed6fe4758781c1, justo obtener los primeros 7 caracteres 31af650. Es el predeterminado para GitHub.

Cuestiones relacionadas