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:
Dev_Branch
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
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
Podemos ver que nuestra rama Principal
no tiene los siguientes compromisos:
edcb8ae
Segunda corrección de errorescefb7bb
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:
Si no tiene conflictos de fusión, debería obtener algo similar al resultado anterior. Confirmemos la fusión.
$ git log --oneline
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 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.
LinkedInArtículo relacionado - Git Commit
- Agregar todos los archivos para confirmar excepto un archivo
- Agregar un archivo a la última confirmación en Git
- Cierra el editor de Git Commit en Windows
- Comprender la función de aprobación de Git Commit
- Confirmaciones de la lista de Git