¿Cómo puedo invertir un trozo específico de un compromiso en git?
-
27-09-2019 - |
Pregunta
Me pregunto si hay una forma de trozo específico de forma rápida inversa de una confirmación.
Me puede generar una diff
entre dos cometa o HEAD
para ver la diferencia.
¿Cómo puedo invertir sólo uno de esos trozos (o mejor aún, un conjunto de trozos específicos)?
Solución
git checkout -p $REF -- path/to/file
Cuando $REF
es un nombre de referencia o cometen ID que especifica la confirmación que quieren tomar el estado del archivo. Por ejemplo, para selectivamente revertir los cambios realizados en la última confirmación, el uso HEAD^
.
Otros consejos
git difftool $REF -- /path/to/file
donde $REF
es un nombre de referencia o cometen ID que especifica la confirmación que quieren tomar el estado del archivo. Por ejemplo, para selectivamente revertir los cambios realizados en la última confirmación, el uso CABEZA ^.
Esta pregunta ya fue contestada por @cdhowie, pero me resulta un tanto más agradable de utilizar un difftool interactiva como meld
a restaurar de forma selectiva viejos hunks / líneas de código, sobre todo si hay una, duro-a-hallazgo error introducido recientemente en el código.
Para recuperar un archivo borrado de la confirmación anterior he utilizado la respuesta aquí:
encontrar y restaurar un archivo borrado en un repositorio Git
git checkout <deleting_commit>^ -- <file_path>