Patch Mode de Git

Permite commitear sólo parte de los cambios de un archivo

Publicado por Aunitz Giménez el 11 octubre 2021

Si has hecho varios cambios en un archivo y no quieres incluirlos todos en el mismo commit porque se refieren a temas diferentes, hay una manera de pasar al stage sólo parte de los cambios, commitearlos y después proceder a commitear el resto.

La funcionalidad de Git que permite pasar al stage sólo una parte de los cambios realizados en un archivo se llama Patch Mode. Por línea de comandos se activa mediante el flag patch:

git add --patch nombreDelArchivo

O de modo abreviado:

git add -p nombreDelArchivo

Con Visual Studio Code es muy fácil de utilizar

Imaginad la siguiente situación de partida. Un archivo en el que hay dos cambios que quiero commitear por separado.

Editor de código con un diff abierto para revisar cambios en Git

Selecciono las líneas 3 y 4 de la parte de la derecha y pulso botón derecho del ratón. Después clico en «Stage Selected Ranges».

Menú contextual de un editor con una opción seleccionada durante la revisión de cambios

De ese modo, habré llevado a Stage sólo los cambios seleccionados y podré commitearlos.

Editor de código mostrando cambios en rojo y verde antes de preparar un commit

Mientras que los cambios de la línea 12 permanecen sin pasar al Stage.

Editor de código con diferencias resaltadas en varias columnas