Git

Cómo Git Rebase

Cómo Git Rebase
git rebase es una utilidad de fusión como git merge. Pero la forma en que funcionan es diferente.

En este artículo, hablaré sobre cómo funciona Git rebase, las diferencias entre Git rebase y Git merge, y cómo trabajar con Git rebase. Entonces empecemos.

Git Rebase:

Digamos que tienes un repositorio de Git con las confirmaciones A, B, C en el Maestro rama. Luego, creaste una nueva rama alguna rama y agregó 2 nuevas confirmaciones D y mi hacia alguna rama rama.

Fig 1: historial de compromiso inicial.

Ahora, digamos, olvidó agregar algo en el Maestro rama. Entonces, regresa al Maestro rama y agrega una nueva confirmación GRAMO hacia Maestro rama. Tu historial de git debería verse de la siguiente manera.

Fig 2: historial de confirmaciones después de agregar la confirmación G en la rama maestra.

Todo se ve bien. Ahora, si quisiera todos los cambios que ha realizado en el alguna rama rama para estar en el Maestro rama, puede fusionar el alguna rama rama a la Maestro rama. Esto es lo que git unir hacer.

¿Y si quieres el compromiso? GRAMO estar disponible en el alguna rama rama? Bueno, puedes usar git rebase para eso.

En el historial de confirmaciones de la figura 2, puede ver que la rama alguna rama comienza desde el compromiso C. Si haces un git rebase en alguna rama, entonces comenzaría desde el compromiso GRAMO como se muestra en la figura 3 a continuación. Tenga en cuenta que, el contenido de la confirmación D y mi también cambiará después de la operación de rebase. Los commits D y mi incluirá los cambios en el compromiso GRAMO. Por eso agregué * símbolo antes de las confirmaciones D y mi.

Si desea saber cómo se vería el historial de confirmaciones si lo fusionara, eche un vistazo a la figura 4. Lo he incluido solo para que puedas compararlo con git rebase.

Fig 4: historial de confirmación si se usó git merge.

Ahora que sabe qué es git rebase, la diferencia entre git rebase y git merge y por qué se usó git rebase, le mostraré cómo usarlo en la siguiente sección de este artículo a continuación.

Flujo de trabajo de Git Rebase:

En esta sección, crearé un nuevo repositorio de git en mi computadora local y le mostraré cómo funciona git rebase. Le recomiendo que tenga un buen conocimiento de git rebase antes de aplicarlo en su proyecto.

Primero, crea un nuevo repositorio de Git rebase-demo / en su computadora de la siguiente manera:

$ git init rebase-demo

Ahora, navega hasta el rebase-demo / directorio de la siguiente manera:

$ cd rebase-demo /

Ahora, crea un nuevo archivo prueba.TXT como sigue:

$ echo "A"> prueba.TXT

La prueba.txt contiene solo una línea A. Digamos, este es su código de proyecto inicial.

Ahora, confirme los cambios de la siguiente manera:

$ git agregar .
$ git commit -m 'A'

Ahora, agrega otra línea B hacia prueba.TXT archivo como se muestra en la captura de pantalla a continuación.

Ahora, confirme los cambios de la siguiente manera:

$ git agregar .
$ git commit -m 'B'

Ahora, agreguemos otra línea C al prueba.TXT expediente.

Además, confirme los cambios de la siguiente manera:

$ git agregar .
$ git commit -m 'C'

Ahora, el historial de confirmaciones de la rama maestra debería verse de la siguiente manera:

$ git log --en línea

Ahora, digamos, tienes algunas ideas nuevas que quieres probar. Entonces, creemos y paguemos en una nueva rama nueva caracteristica como sigue:

$ git checkout -b nueva función

Ahora, agregue su nueva idea (la línea D digamos) al prueba.TXT expediente.

Ahora, confirme los cambios de la siguiente manera:

$ git agregar .
$ git commit -m 'D'

Ahora, agregue la línea E a la prueba.TXT expediente.

Confirme los cambios de la siguiente manera:

$ git agregar .
$ git commit -m 'E'

Ahora, el historial de confirmaciones del nueva caracteristica La rama debe tener el siguiente aspecto:

$ git log --en línea

Mira cómo están las confirmaciones en orden A < B < C < D < E?

Ahora, recuerde que olvidó agregar algo al Maestro rama en la que también querías estar en el nueva caracteristica rama! Entonces, pague en el Maestro rama.

Agregué una nueva línea al final del prueba.TXT archivo como puede ver.

Ahora, confirme los cambios de la siguiente manera:

$ git agregar .
$ git commit -m 'G'

Ahora, el historial de confirmaciones del Maestro la rama debería verse así.

A < B < C < G

Ahora, para reajustar las confirmaciones del Maestro rama a la nueva caracteristica sucursal, primer pago en el nueva caracteristica rama.

$ git checkout nueva característica

Ahora, haz un git rebase del Maestro rama de la siguiente manera:

$ git rebase maestro

Algunos se fusionan en conflicto! Arreglemos eso.

Bueno, los cambios que hice a la confirmación GRAMO y D están en conflicto entre sí. Quiero mantener ambos.

Después de arreglar el conflicto de fusión, el prueba.TXT El archivo debe tener el siguiente aspecto:

Ahora, agregue los cambios al área de preparación de la siguiente manera:

$ git agregar .

Ahora, continúe la rebase operando de la siguiente manera:

$ git rebase --continuar

Otro conflicto de fusión! Bueno, esto puede pasar. Rebase cambia el historial de confirmaciones de git. Entonces, se esperan cosas como esta.

Parece que el proceso de fusión falló debido a algunas líneas vacías. Arreglemos eso.

Después de arreglar el conflicto de fusión, el prueba.TXT el archivo debe verse de la siguiente manera.

Ahora, agregue los cambios al área de preparación de la siguiente manera:

$ git agregar .

Ahora, continúe con la operación de rebase de la siguiente manera:

$ git rebase --continuar

Git rebase está completo.

Como puede ver, el historial de confirmaciones de la rama de nuevas funciones se actualiza. Ahora, el historial de confirmaciones es el siguiente:

A < B < C < G < D < E

Como se esperaba.

El final prueba.TXT el archivo debe verse de la siguiente manera.

Git rebase es una herramienta poderosa. Pero, nunca debes usarlo en repositorios compartidos de Git. Úselo solo en los repositorios de Git en los que solo trabaja. De lo contrario, enfrentará muchos problemas en el camino.

Entonces, así es como usas git rebase. Gracias por leer este artículo.

Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...
Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...