git add --patch
Tabla de contenido
Cuando estás haciendo un componente complejo o una funcionalidad en varios pasos, a veces ocurre que la mente se dispersa y sin quererlo, atacas varios frentes a la vez en lugar de ir de uno a uno, por lo que, cuando vas a commitear, acabas mezclando cosas diferentes en el mismo commit, lo cual no es lo ideal, de ahí la necesidad de utilizar git add --patch
.
De acuerdo con la documentación de git el comando ejecuta git add --interactive
pero omite el menú de comandos inicial y salta directamente al subcomando parche, lo que en esencia significa que, con este comando, en lugar de añadir el archivo en su totalidad directamente, podemos repasar los cambios que se han hecho sobre el mismo de forma interactiva y decidir cuáles queremos añadir al stage para ser commiteados y cuáles no.
Cómo usar --patch
Ejecutando git add <file> -p
accedemos a la revisión del archivo, y podemos elegir entre las diferentes opciones para cada uno de los trozos de código en los que se va a dividir, para aceptar o rechazar los cambios o dejadlos sin decidir y pasar al siguiente trozo, entre otras opciones, que son:
y
- añadir este trozo de código al stagen
- no añadir este trozo de código al stageq
- salir; no añadir este trozo de código ni ningún otro al stagea
- añadir este trozo de código y los siguientes en el fichero al staged
- no añadir este trozo de código ni cualquiera de los siguientes en el fichero al stageg
- seleccionar el trozo de código al que queremos ir/
- buscar un trozo de código que coincida con una regexj
- dejar este trozo de código sin decidir y ver el siguiente trozo de código que esté también sin decidirJ
- dejar este trozo de código sin decidir y ver el siguiente trozo de códigok
- dejar este trozo de código sin decidir y ver el trozo de código anterior que esté sin decidirK
- dejar este trozo de código sin decidir y ver el trozo de código anteriors
- separar este trozo de código en trozos más pequeñose
- editar manualmente este trozo de código?
- mostrar auyda
La pega que podemos encontrar es que git nos presenta las modificaciones sobre el archivo agrupadas o divididas dependiendo de su proximidad dentro del archivo, por lo que a veces ocurre que dos modificaciones no relacionadas o que pertenecen a funcionalidades diferentes, están escritas en líneas consecutivas y por lo tanto, no podemos dividir esa partición, que es en realidad la parte que nos gustaría dividir.
Para estos casos, las opciones s
y e
son especialmente útiles. s
divide el trozo de código en trozos más pequeños, pero a veces no es suficiente porque necesitamos más granularidad y decidir por nosotros mismos. Es entonces cuando debemos elegir la opción e
, que sirve para activar la edición manual, y seguir las instrucciones que nos indican cómo proceder para editar estos trozos de código.
En nuestro caso, si queremos añadir la segunda línea pero no la tercera, bastará con borrar la línea entera.
De esta manera, aunque hayamos mezclado funcionalidades diferentes, podremos mantener nuestros commits limpios y ordenados por funcionalidades
Conclusiones
Conocer en profundidad las herramientas con las que trabajamos a diario nos permite mejorar en nuestro día a día y ser más productivos, lo que se traduce en menos agobios y más eficiencia y eficacia a la hora de realizar una tarea o desarrollar un proyecto, lo que a menudo significa terminar el trabajo a tiempo y poder vivir más vida fuera del trabajo, por eso es una buena idea, aunque sea poco a poco, ir indagando y profundizando en el uso de las mismas :)
Para saber más
comments powered by DisqusSi te ha parecido interesante
Tanto si tienes alguna duda o quieres charlar sobre este tema, como si el contenido o nuestros perfiles te parecen interesantes y crees que pdemos hacer algo juntos, no dudes en ponerte en contacto con nosotros a través de twitter o en el email hola@mamutlove.com