Pregunta git recupera el archivo borrado donde no se realizó ninguna confirmación después de la eliminación


Borré algunos archivos

NO me he comprometido todavía.

Quiero restablecer mi espacio de trabajo para recuperar los archivos.

hice un git checkout ..

Pero los archivos eliminados aún faltan.

Y git status muestra:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    cc.properties
#   deleted:    store/README
#   deleted:    store/cc.properties
#

Por qué no git checkout . restablecer el espacio de trabajo a HEAD?


604
2017-08-14 16:27


origen


Respuestas:


El resultado te dice lo que tienes que hacer. git reset HEAD cc.properties etc.

Esto desestabilizará la operación rm. Después de eso, ejecutando un git status de nuevo le dirá que necesita hacer una git checkout -- cc.properties para recuperar el archivo

Actualizar: Tengo esto en mi archivo de configuración

$ git config alias.unstage
reset HEAD

que usualmente uso para borrar cosas del escenario.


620
2017-08-14 16:29



Has organizado la eliminación, por lo que debes hacer:

git checkout HEAD cc.properties store/README store/cc.properties

git checkout . solo marca desde el índice donde la eliminación ya se ha realizado.


163
2017-08-14 16:31



Solo haz git checkout path/to/file-I-want-to-bring-back.txt


130
2018-01-23 11:57



Para recuperar todo unstaged eliminaciones a la vez, automáticamente, sin especificar cada ruta individual:

git ls-files -d | xargs git checkout --

Para recuperar todo escenificado eliminaciones a la vez, automáticamente, sin especificar cada ruta individual:

git status | grep 'deleted:' | awk '{print $2}' | xargs git checkout --

111
2017-11-12 17:29



Ya que estás haciendo un git checkout ., parece que intenta restaurar su rama al último estado de confirmación.

Puedes lograr esto con un git reset HEAD --hard

Advertencia

Hacer esto puede eliminar todas sus modificaciones más recientes y desestabilizar sus modificaciones, por ejemplo, puede perder trabajo. Eso mayo sé lo que quieras, pero echa un vistazo los documentos asegurarse.


62
2017-12-21 19:54



Aquí está el comando que me ayudó en mi mac. Intenté algunas de las otras soluciones pero no funcionaron para mí.

Versión de Git en OSX Mavericks

mac-pro:main chris$ git version
git version 1.8.5.2 (Apple Git-48)

Mando

git checkout HEAD -- path/to/file/file.cc

25
2018-03-15 20:55



si tu usaste

git rm filename

para borrar un archivo luego

git checkout path/to/filename

no funciona, entonces en ese caso

git checkout HEAD^ filename

Deberia trabajar


24
2018-03-31 15:21



git checkout HEAD -- client/src/pp_web/index.cljs

16
2018-04-17 20:51



Si quieres restaurar todos los archivos a la vez

Recuerde usar el período porque le dice a git que tome todos los archivos.

Este comando restablecerá el encabezado y desestabilizará todos los cambios:

$ git reset HEAD . 

A continuación, ejecute esto para restaurar todos los archivos:

$ git checkout .

Luego haciendo un estado de git, obtendrás:

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

12
2018-02-10 14:39



¿Puedes querer ver? esta

eso va para los casos donde usaste

git checkout -- .

antes de comprometer algo

También es posible que desee deshacerse de los archivos creados que aún no se han creado. Y no los quieres. Con :

git reset -- .

8
2017-09-02 15:38