2012-03-14 11 views
24

He clonado el proyecto git en el repositorio git local. Luego he hecho algo desagradable con uno de los archivos y en ese estado de pánico eliminé físicamente el archivo de la unidad (rm style.css) y también lo eliminé de git (git rm style.css).Cómo recupero el archivo perdido en mi sucursal

Quiero obtener el original style.css de regreso del origen a mi rama dev. Desafortunadamente, mi git piensa que está actualizado y no hará nada.

[email protected]:~/project.me# git status 
# On branch dev 
nothing to commit (working directory clean) 

[email protected]:~/project.me# git pull origin dev 
Password for 'https://[email protected]': 
From https://github.com/somewhere/project.me 
* branch   dev  -> FETCH_HEAD 
Already up-to-date. 

¿Qué necesito hacer para decirle a Git que quiero descargar archivo original style.css de nuevo en mi rama dev?

Respuesta

46

Use git checkout. En su caso:

git checkout origin/master style.css 

Este comando actualizará el archivo solicitado a la rama determinada (en este caso la rama remota origin/master).

Esperanza esto ayuda

+0

Gracias - esto me ayudó también. Si tiene muchos archivos para restaurar (como lo hice) puede usar: 'git diff --name-status | sed -n '/^D/s/^ D \ s * // gp' | xargs git checkout origin/master' que volverá a verificar todos los archivos eliminados. – spikyjt

5

Ir a la ubicación de style.css (puede ser app/css /) utilizando la consola de lo contrario no habrá errores pathspec.

luego ejecutar:

git checkout origin/master style.css

26

Si desea restaurar todos los archivos que faltan desde el repositorio local

git checkout . 

Advertencia: Este método también restaura todos los archivos modificados y las gotas de todos los cambios

+0

Gracias! Esto resuelve el problema de archivos perdidos, claramente. – Smartis

+0

no ayudó a restaurar archivos perdidos que están en el control remoto/principal pero no local – vsync

+0

@vsync Puede, pero debe ejecutar git fetch antes – aleskva

Cuestiones relacionadas