Aquí está mi historial para la carpeta 'alguna carpeta'
$ git log somefolder
commit 89cd
More changes to somefolder
commit ef47a
Updating somefolder and other stuff
commit e095
Bugs fixed in somefolder
Quiero revertir alguna carpeta a la confirmación 'Errores arreglados en alguna carpeta'.
Dado que la segunda confirmación involucró cambios fuera de alguna carpeta, no quiero revertir esta confirmación.
Supongo que la forma más segura sería crear un diff / patch entre commit e095 y 89cd que se aplique solo a alguna carpeta, y luego aplicar ese parche. ¿Cómo puedo hacer eso?
git reset e095 -- some/folder
en su lugar--no-overlay
forgit checkout
para que se eliminen los archivos rastreados que no están en la confirmación que está comprobando.Puede usar
git reset
para restablecer el índice, que también incluirá la eliminación de archivos que se agregaron en confirmaciones más recientes (git checkout
por sí solo no hace esto):Sin embargo
git reset
, no actualiza la copia de trabajo y la--hard
opción no funciona con carpetas. Entonces usegit checkout
para hacer que la copia de trabajo sea la misma que el índice:y luego, si también desea eliminar los archivos agregados, también debe hacer:
fuente