Eliminé algunos archivos.
NO me comprometí todavía.
Quiero restablecer mi espacio de trabajo para recuperar los archivos.
Hice un git checkout .
.
Pero todavía faltan los archivos eliminados.
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 .
restablece el espacio de trabajo HEAD
?
git checkout .
habría funcionado bien.Respuestas:
La salida te dice lo que debes hacer.
git reset HEAD cc.properties
etc.Esto desestabilizará la operación rm. Después de eso, ejecutar una
git status
vez más le indicará que necesita hacer unagit checkout -- cc.properties
para recuperar el archivo.Actualización: tengo esto en mi archivo de configuración
que suelo usar para desengranar cosas.
fuente
git reset HEAD \*
y luegogit checkout -- .
rm -r ./engines
- ¡Uy! Ahoragit reset engines; git checkout engines
.Ha organizado la eliminación, por lo que debe hacer lo siguiente:
git checkout .
solo se retira del índice donde ya se ha realizado la eliminación.fuente
Solo haz
git checkout path/to/file-I-want-to-bring-back.txt
fuente
error: pathspec 'file.ext' did not match any file(s) known to git.
git status
dice al respecto?git checkout HEAD -- file.ext
ayudó a restaurarlo.Para recuperar todas las eliminaciones no preparadas a la vez, automáticamente, sin especificar cada ruta:
Para recuperar todas las eliminaciones por etapas a la vez, automáticamente, sin especificar cada ruta individual:
fuente
git status --long | grep 'deleted:' | awk '{print $2}' | xargs git reset HEAD --
.git ls-files -d | sed -e "s/\(.*\)/'\1'/" | xargs git checkout --
que funcionaráComo está haciendo una
git checkout .
, parece que está intentando 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 últimas modificaciones y desestabilizar sus modificaciones, por ejemplo, puede perder el trabajo. Se puede ser lo que quiera, pero echa un vistazo a los documentos para asegurarse.
fuente
si usaste
para eliminar un archivo entonces
no funciona, así que en ese caso
Deberia trabajar
fuente
git checkout HEAD^ path/to/filename
funcionó para mí ya que no había comprometido el archivo.Aquí está el comando que me ayudó en mi mac. Probé algunas de las otras soluciones, pero no me funcionaron.
Versión de Git en OSX Mavericks
Mando
fuente
fuente
Utilícelo
git ls-files
para retirar archivos eliminados (-d) o modificados (-m).ver ¿Cómo puedo restaurar solo los archivos modificados en un pago de git?
fuente
git ls-files -d | xargs -I{} git checkout "{}"
.Si desea restaurar todos los archivos a la vez
Recuerde usar el punto porque le dice a git que tome todos los archivos.
Este comando restablecerá la cabeza y eliminará todos los cambios:
Luego ejecute esto para restaurar todos los archivos:
Luego, haciendo un estado de git, obtendrá:
fuente
¿Puedes querer ver esto?
eso va para los casos en que usaste
antes de cometer algo
También es posible que desee deshacerse de los archivos creados que aún no se han creado. Y no los quieres. Con :
fuente
git checkout -- .
, no ayuda a recuperar archivos borrados y es equivalente a lo que el autor de la pregunta trató:git checkout .
. La parte que trabajan lata es el que no copiar:git checkout <file_path>
.Encontré esta publicación mientras buscaba respuestas sobre cómo eliminar un archivo que fue eliminado en mi directorio de trabajo después de una fusión de la rama de otro. Todavía no se realizó ninguna confirmación después de la fusión. Como se trataba de una fusión en progreso, no pude volver a agregarlo usando:
Tuve que hacer otro paso además del restablecimiento para recuperar el archivo:
fuente
Si no ha confirmado ningún cambio, todo lo que tiene que hacer es guardar esos cambios y volverá a la última confirmación de trabajo.
fuente
Si está buscando un directorio eliminado.
fuente
Aquí hay diferentes casos como referencia para ayudar a otros:
Si la eliminación no se ha confirmado , el siguiente comando restaurará el archivo eliminado en el árbol de trabajo.
Puede obtener una lista de todos los archivos eliminados en el árbol de trabajo utilizando el siguiente comando.
Si la eliminación se ha confirmado , busque la confirmación donde sucedió y luego recupere el archivo de esta confirmación.
Debería darte algo como
c46e81aa403ecb8a0f7a323a358068345
, ahora usa commit # aquíAlgo como esto: $ git checkout c46e81aa403ecb8a0f7a323a358068345 -
En caso de que esté buscando la ruta del archivo para recuperar, el siguiente comando mostrará un resumen de todos los archivos eliminados.
Si solo desea mostrar la lista de archivos:
fuente
Para mí lo que funcionó fue
git checkout {SHA1 of commit with version to restore} "{path to file to restore}"
Por ejemplo
git checkout 5a6b3179e58edff9c90326b9a04284b02fd67bd0 "src-ui/views/includes/radar.pug"
(ejecutado en la rama en la que queremos que entre el archivo)
Después de que se ejecute ese comando, el archivo restaurado existirá en la ubicación original (que deberá ser comitado)
fuente
git checkout master path/to/the/file.bin
para que pueda recuperar ese archivo sin perder ningún otro cambio que haya hecho. PD: esta debería ser la respuesta aceptada ...Si ha instalado ToroiseGIT, simplemente seleccione el elemento de menú "Revertir ..." para el menú emergente de la carpeta principal.
fuente
1.Encuentre esa confirmación particular a la que desea revertir usando:
2.Vuelva a esa confirmación usando:
Ahora su sucursal local tendría todos los archivos en particular
fuente
PRECAUCIÓN: cometa cualquier trabajo que desee retener primero.
Puede restablecer su espacio de trabajo (y recuperar los archivos eliminados)
fuente
./*
../*
bash se expandirá para que coincida con esos archivos antes de enviarlos a git.Tuve el mismo problema, sin embargo, ninguna de las soluciones anteriores funcionó para mí. Lo que terminé haciendo fue:
- crear un archivo vacío con el mismo nombre
- comparar este archivo con su historial local
- copiar el historial en un archivo vacío.
fuente
Tuve el mismo problema y ninguna de las respuestas que probé funcionó para mí tampoco. Estoy usando Intellij y había revisado una nueva rama
git checkout -b minimalExample
para crear un "ejemplo mínimo" en la nueva rama de algún problema al eliminar un montón de archivos y modificar un montón de otros en el proyecto. Desafortunadamente, aunque no confirme ninguno de los cambios en la nueva rama "ejemplo mínimo", cuando revisé mi rama "original" nuevamente, todos los cambios y eliminaciones de la rama "ejemplo mínimo" habían sucedido en la " original "rama también (o eso parecía). De acuerdo congit status
los archivos eliminados, simplemente desaparecieron de ambas ramas.Afortunadamente, a pesar de que Intellij me había advertido que "eliminar estos archivos puede no ser completamente recuperable", pude restaurarlos (en la rama de ejemplo mínima de la que realmente se habían eliminado) haciendo clic derecho en el proyecto y seleccionando Historial local > Mostrar historial (y luego Restaurar en el elemento de historial más reciente que quería). Después de que Intellij restauró los archivos en la rama "ejemplo mínimo", empujé la rama al origen. Luego volví a mi sucursal local "original" y corrí
git pull origin minimalExample
para recuperarlos también en la sucursal "original".fuente