2010-11-20 3 views

Respuesta

108

Desde Git es VCS distribuidos, su repositorio local contiene toda la información. No es necesario descargarlo; solo necesita extraer el contenido que desea del repositorio a su alcance.

Si usted no ha cometido la eliminación, sólo echa un vistazo a los archivos de su actual comprometen:

git checkout HEAD <path> 

Si ha cometido la eliminación, es necesario revisar los archivos de un compromiso que les ha . Es de suponer que sería la confirmación anterior:

git checkout HEAD^ <path> 

pero si es hace n compromete, utilice HEAD~n, o simplemente disparar hasta gitk, encontrar el SHA1 del apropiada cometió, y pegarlo en

+1

solo como un comentario lateral, esto también funciona para un directorio completo, no es especial o específico para un solo archivo (funcionó cuando lo intenté al menos). Thnx por cierto. –

+0

N.B. el '' es obligatorio, incluso si solo es '.' dot para el directorio actual. Pero la "rama" ("HEAD" en el ejemplo anterior) es opcional. Al igual que con tantos comandos de Git, ni el resultado ni la ayuda son útiles. – MarkHu

2

Es necesario comprobar a cabo una versión anterior de antes de eliminar los archivos. Pruebe git checkout HEAD^ para pagar la última revisión.

23

git checkout filename

git reset --hard podría hacer el truco, así

+5

advertencia al usar el método 'git reset --hard' porque eso revertirá todo el árbol a la ubicación w/e que pones HEAD/HEAD ^/HEAD ~ n y lo hará sin prejuicios y potencialmente perderá un muchos commits ... – g19fanatic

+0

git reset --hard trabajando para mí, gracias chico :) –

+0

git checkout nombre de archivo fue la respuesta :) – Ruub

12

Si. han eliminado varios archivos cometidos localmente pero no, puede forzar la caja

$ git checkout -f HEAD 
+0

Como vemos en la salida "Ya está actualizado", la persona que hace esta pregunta no ha cometido nada últimamente. ¿Debería especificar tal vez que git checkout -f HEAD es PELIGROSO? , ya que podría deshacer cambios locales que no fueron cometidos (restaurar los archivos anteriores siendo el resultado positivo, perdiendo los cambios en los archivos editados el negativo). –

0

Además, agrego que hacer los siguientes pasos para que el repositorio git estaría vinculado correctamente con el IDE:

$ git reset <commit #> 

$ git checkout <file/path> 

¡Espero que haya sido útil!

0

Si ha eliminado varios archivos de forma local y no cometieron los cambios, vaya a la ruta de repositorio local, abra el Shell de Git y tipo.

$ git checkout HEAD . 

Se recuperarán todos los archivos eliminados antes de la última confirmación.

Añadiendo "." recuperará todos los archivos eliminados en el repositorio actual, a sus respectivas rutas.

Para más detalles de partida de los documentation.

Cuestiones relacionadas