Git es un software de control de versiones diseñado por Linus
Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento
de versiones de aplicaciones cuando estas tienen un gran número de
archivos de código fuente…
Antes de comenzar con los pasos señalar que si el parche que deseas
hacer es para corregir un bug o agregar una nueva funcionalidad deberías
hacer esto en una nueva rama dedicada solo a ello, en base a esto el
parche que contruiremos en este post se creará a partir de las
diferencias entre dos ramas aunque también se puede crear entre
versiones, fechas, marcas, …
- Crear un directorio donde estará nuestro “gran proyecto” (mkdir test-git).
- Entrar e inicializar un repositorio vacio. (cd test-git/ ; git init)
- Crear algún archivo y editarlo(nano main.c):
#include <stdio.h>
int main (int argv, char *argvv[])
{
printf ("hello git\n");
return 0;
} - Agregar a git el directorio actual(que en el se encuentra el archivo de interés) y hacer nuestro primer commit lo que además abilitará la rama master.(git add . ; git commit -m “the first commit”)
- Ya podemos listar las ramas y ver que se encuentra activa la master(git branch).
- Creamos una nueva rama “en la que escribiremos los cambio al proyecto”(git branch crpatch).
- Nos movemos a la nueva rama y verificamos que sea la activa (git checkout crpatch ; git branch).
- Efectuamos los cambio al proyecto:
- Crear algún archivo y editarlo(nano main.c):
#include <stdio.h>
int main (int argv, char *argvv[])
{
printf ("hello git, this program become from a patch\n");
return 0;
} - Agregar los cambios (git add . ; git commit -m “commit for the patch”).
- Ya podemos ir chequeando las diferencias que ha tomado el proyecto con repecto a la rama master (git diff master).
- Por útimo crear el parche… (git format-patch master --stdout > crpatch.patch).
Ya tenemos el parche, ahora veremos como aplicarlo:
- Nos movemos a la rama master y eliminamos la rama “crpatch” con lo que perderiamos todos los cambios efectuados si no fuese porque contamos con el parche(git checkout master ; git branch -D crpatch).
- Revisamos los cambios que presumpondría el aplicar el parche(git apply --stat crpatch.patch).
- Revisamos si el aplicar el parche nos pudiese taer algún error (git apply --check crpatch.patch). Si no obtienes nada en la salida es porque puedes aplicar el pache satisfactoriamente.
- Por último aplicamos el parche revisando antes y después el contenido para comprobar y entender el trabajo(cat main.c ; git apply crpatch.patch ; cat main.c).
Listo!!!, espero que estés preparado lo mismo para “escribir” un
parche y enviarlo a los desarrolladores con los cuales quieras colaborar
que para parchear algún programa con un parche que tengas para ello.