Recientemente tuve la necesidad de crear un parche a partir de algunos cambios realizados a una aplicación. El «reto» era que únicamente tenia la ultima versión y no tenia voluntad de descargar la versión anterior para usar diff . . . con lo cual conoci git-diff.
Como su nombre lo indica git-diff es una integración entre el clasico diff para git, con lo que podemos hacer un diff (y consecuentemente un parche) a partir de dos commits, pudiendo generar un diff total (un diff para todo el commit) o un diff parcial (para uno o varios archivos).
Identificar las revisiones
Lo primero que debemos de hacer es identificar las revisiones, y para esto podemos utilizar git-log, recordando que cada commit puede ser identificado por los primeros 7 caracteres de la suma SHA-1
Por ejemplo con el comando:
1 | git log --reverse |
Obtendríamos una salida similar a la siguiente (en orden reverso para ver los ultimos commits):
De aca se logra identificar que las revisiones que nos interesan son 908f798 y 0c39bec.
Crear el parche para un archivo
Una vez identificadas las revisiones basta ejecutar git diff sobre nuestro archivo y llevar la salida hacia un archivo nuevo. Para esto la sintaxis a usar con git-diff es:
git diff [revision1] [revision2] — [archivo] > [parche]
Por ejemplo, para generar un parche para el archivo app.nabconfig.js a partir de las dos revisiones mostradas, ejecutamos:
1 | git diff 908f798 0c39bec -- Folder/app.nabconfig.js > branding.patch |
La salida debiera ser similar a la siguiente: