rebase: la operación de fusionar una rama característica en una rama principal.
Nunca combine actualizaciones que se hayan enviado al repositorio público.
Si considera la bifurcación como una forma de limpiar el historial de confirmaciones antes de enviar, no hay problema en bifurcar únicamente aquellos objetos de confirmación que no son públicos. Si combinamos objetos de confirmación que se han hecho públicos y alguien realiza un trabajo de desarrollo posterior basado en estos objetos de confirmación, surgirán problemas frustrantes.
Enlace de referencia: derivación de rama-rama de Git
Pasos de la operación:
5.1 rebase
Rama actual: dev_1 (negrita)
p>Rama basal: Desarrollo
Operación: haga clic derecho en la rama de desarrollo y aparecerá el siguiente cuadro emergente. Seleccione "Exportar cambios actualmente en desarrollo" y luego "Confirmar exportación". Si hay un conflicto, resuélvalo. Luego repita la operación de clic derecho anterior y seleccione "Continuar para derivar" en el cuadro emergente. Una vez completada la derivación, la rama dev_1 corre hacia abajo de la rama de desarrollo, que es una línea recta.
5.2 Fusionar
Rama actual: Desarrollo (negrita)
Operación: haga clic derecho en la rama dev_1 y aparecerá el siguiente cuadro emergente. Seleccione "Fusionar desarrollo dev_1" y luego "Confirmar fusión" para avanzar rápidamente. Una vez completada la fusión, la rama de desarrollo apunta a la última confirmación de la rama dev_1.
5.3 Eliminar la rama dev_1
Después de que la rama de función se fusiona con la rama principal, no tiene sentido y se puede eliminar.
Vuelva a escribir el parche de cambio generado por C3 en base a C4. En Git, esta operación se parece más a un rebase.
El principio es volver al ancestro más reciente de las dos ramas y generar una serie de parches de archivos basados en los objetos de envío posteriores de la rama actual (es decir, la rama dev_1 que se derivará). (Aquí solo hay un C3), y luego use la rama base para (es decir, desarrollar). El último objeto enviado C4 es el nuevo punto de partida, y los archivos de parche preparados previamente se aplican uno por uno. Finalmente, se generará un nuevo objeto de confirmación de fusión C3, reescribiendo así el historial de confirmación de dev_1 y colocándolo directamente en la secuencia posterior de la rama de desarrollo, como se muestra a continuación.
Ahora regrese a la rama de desarrollo y realice una fusión rápida. En este punto, la rama "desarrollo" apunta a C3.
Dado que el objeto de envío de la rama actual de desarrollo está directamente arriba de la rama dev_1 que se fusionará, Git solo necesita mover el puntero de la rama de desarrollo directamente hacia la derecha. En otras palabras, si puedes llegar a otra rama bajando una rama más, entonces Git simplemente moverá el puntero hacia la derecha al fusionar las dos ramas, porque no hay diferencias que deban resolverse en esta única línea de rama del historial. , por lo que este proceso de fusión se puede llamar avance rápido.