Combinar selectivamente los cambios de diferentes ramas en Git

John Wachira 15 febrero 2024
Combinar selectivamente los cambios de diferentes ramas en Git

Este artículo discutirá la fusión de cambios específicos de una rama a otra. Como sabemos, al fusionar ramas, Git fusiona todos los archivos sin excepción.

Puede encontrarse en un escenario en el que tiene algunas confirmaciones en una rama, y debe elegir algunas y fusionarlas en otra rama. Veamos cómo podemos evitar esto.

Combinar selectivamente los cambios de diferentes ramas en Git

Para una mejor comprensión, simularemos un escenario en el que necesitamos fusionar algunas confirmaciones de una rama a otra. Así es como lo rodearemos.

Ejemplo:

En nuestro repositorio local, Delftscopetech, tenemos dos sucursales, a saber:

  1. Dev_Branch
  2. Principal

Para que las cosas sean lo más prácticas posible, supondremos que encontramos algunos errores en nuestro proyecto que necesitaban corregirse. Después de corregir los errores, nos dimos cuenta de que estábamos desprotegidos en la rama Dev_Branch en lugar de la rama Main.

Una fusión normal romperá nuestro proyecto. qué hacemos?

En tal escenario, primero ejecutaremos el comando git log para mostrar nuestro historial de confirmaciones en Dev_Branch. Asegúrese de estar en la rama que contiene los cambios que necesita.

$ git checkout Dev_Branch

Aquí está nuestro historial de confirmaciones:

$ git log --oneline

Historial de confirmaciones en Dev_Branch

Luego identificaremos las confirmaciones que queremos fusionar con nuestra rama Principal. Aquí está el historial de confirmaciones en nuestra rama Principal:

$ git checkout Main
$ git log --oneline

Historial de confirmaciones en rama principal

Podemos ver que nuestra rama Principal no tiene los siguientes compromisos:

  1. edcb8ae Segunda corrección de errores
  2. cefb7bb Primera corrección de errores

Para fusionar las dos confirmaciones, usaremos el comando git cherry-pick e introduciremos los ID de confirmación para las dos confirmaciones. Asegúrese de estar registrado en la rama que desea fusionar, en nuestro caso, la rama Principal.

$ git checkout Main

Ahora podemos ejecutar el cherry-pick como se muestra a continuación:

$ git cherry-pick edcb8ae cefb7bb

Producción:

Salida de combinación selectiva de Git

Si no tiene conflictos de fusión, debería obtener algo similar al resultado anterior. Confirmemos la fusión.

$ git log --oneline

Confirmar la fusión

El resultado muestra que Git ha creado dos nuevas confirmaciones con diferentes ID de confirmación pero con la misma descripción. Ahora podemos enviar la rama al repositorio remoto ejecutando el comando git push como se muestra a continuación:

$ git push origin Main

En resumen, podemos realizar fusiones selectivas en Git gracias al comando git cherry-pick. Todo lo que necesita es la identificación de compromiso para el cambio que desea fusionar y asegurarse de que está desprotegido en la rama correcta.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - Git Commit

Artículo relacionado - Git Merge