volver ver restaurar pendientes oneline modificados log deshacer commits archivos anterior git git-workflow

restaurar - ¿Cómo puedo revertir un fragmento específico de un commit en git?



git ver commits pendientes (3)

Para recuperar un archivo eliminado de una confirmación anterior, utilicé la respuesta aquí:

Encuentra y restaura un archivo eliminado en un repositorio Git

git checkout <deleting_commit>^ -- <file_path>

Me pregunto si hay una manera de revertir rápidamente una parte específica de un compromiso.

Puedo generar un diff entre dos confirmaciones o HEAD para ver la diferencia.

¿Cómo puedo revertir solo uno de esos trozos (o mejor aún, un conjunto de trozos específicos)?


git checkout -p $REF -- path/to/file

Donde $REF es un nombre de referencia o ID de confirmación que especifica la confirmación de la que desea tomar el estado del archivo. Por ejemplo, para revertir selectivamente los cambios realizados en la última confirmación, use HEAD^ .


git difftool $REF -- /path/to/file

donde $REF es un nombre de referencia o ID de confirmación que especifica la confirmación de la que desea tomar el estado del archivo. Por ejemplo, para revertir selectivamente los cambios realizados en la última confirmación, use HEAD ^.

Esta pregunta ya fue respondida por @cdhowie, pero me parece un poco más agradable usar una combinación de herramientas interactiva como la meld para restaurar de forma selectiva los códigos antiguos, especialmente si hay un error recientemente introducido y difícil de encontrar en el código. .