⊗gtPmBrCSR 44 of 66 menu

Reorganización simple de commits en Git

El sistema Git proporciona dos formas de introducir cambios cuando se trabaja con ramas: fusión y reorganización.

La ventaja de la reorganización es que el historial de commits de ambas ramas, a diferencia de la fusión, se verá más lineal y más fácil de percibir para los miembros del equipo que trabaja en un mismo proyecto.

En Git, la fusión, que se realiza mediante el comando merge, ocurre como una combinación triple de los últimos cambios de las dos ramas fusionadas y la instantánea más nueva de la rama padre, común para estas ramas fusionadas. En este caso, solo se fusionan las instantáneas finales de los commits de las ramas, y no todo su historial previo.

La reorganización supone la aplicación de cambios de una rama (actual) sobre otra rama (que se fusiona con la actual). Vamos a crear una rama test, en la cual crearemos un nuevo archivo file.txt, lo indexaremos y haremos un commit:

git branch test git switch test git add file.txt git commit -m "commit from branch test"

Ahora cambiemos a la rama test y reorganizémosla respecto a la rama principal master:

git checkout test git rebase master

El proceso de reorganización ocurre de la siguiente manera: primero Git hace una instantánea de la rama padre master, que se guarda en un archivo temporal. Luego la rama actual test inserta sus cambios después del commit más reciente de la rama master. Ahora el historial de commits de la rama principal se verá así:

Después de la reorganización, el historial de commits de la rama test también se verá similar al de la rama master.

Luego de esto se puede cambiar a la rama master y ejecutar una fusión por avance rápido, es decir, master volverá a ser la principal e incluirá todos los cambios de la rama test:

git merge test

Cree dos ramas test1 y test2, en cada una de las cuales haya tres commits en diferentes archivos, luego ejecute su fusión mediante reorganización simple.

Español
БеларускаяDeutschEnglishFrançaisPortuguêsРусский
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar