Puede usar git checkout -p, que le permite elegir trozos individuales de la diferencia entre su copia de trabajo y el índice para revertir. Del mismo modo, le git add -ppermite elegir trozos para agregar al índice y le git reset -ppermite elegir trozos individuales de la diferencia entre el índice y HEAD para retroceder fuera del índice.
$ git checkout -p file/to/partially/revert
# or ...
$ git checkout -p .
Si desea tomar una instantánea de su repositorio git de antemano para preservar estos cambios antes de revertirlos, me gusta hacer:
$ git stash; git stash apply
Si usa eso a menudo, es posible que desee asignarle un alias:
[alias]
checkpoint = !git stash; git stash apply
Revertir trozos o líneas individuales puede ser aún más fácil si usa un buen modo de editor o complemento, que puede proporcionar soporte para seleccionar líneas directamente para revertir, ya -pque a veces puede ser un poco torpe usarlo. Uso Magit , un modo Emacs que es muy útil para trabajar con Git. En Magit, puede ejecutar magit-status, encontrar las diferencias para los cambios que desea revertir, seleccionar las líneas que desea revertir (o simplemente colocar el cursor en los trozos que desea revertir si desea revertir un trozo a la vez en lugar de una línea a la vez) y presione kpara revertir esas líneas específicas. Recomiendo encarecidamente Magit si usa Emacs.