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/folderen su lugar--no-overlayforgit checkoutpara que se eliminen los archivos rastreados que no están en la confirmación que está comprobando.Puede usar
git resetpara restablecer el índice, que también incluirá la eliminación de archivos que se agregaron en confirmaciones más recientes (git checkoutpor sí solo no hace esto):Sin embargo
git reset, no actualiza la copia de trabajo y la--hardopción no funciona con carpetas. Entonces usegit checkoutpara 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