Git Cherry-Pick vs Merge Workflow

John Wachira 20 junio 2023
  1. el comando git cherry-pick
  2. el comando git merge
  3. Diferencia entre git cherry-pick y git merge
Git Cherry-Pick vs Merge Workflow

Este artículo analiza el flujo de trabajo para los comandos git cherry-pick y git merge. Usamos ambos comandos para integrar cambios de una rama a otra en el sistema de control de versiones de Git.

Sin embargo, ciertos escenarios favorecen el uso de un comando sobre otro.

el comando git cherry-pick

El comando git cherry-pick es una útil utilidad de Git que nos permite seleccionar confirmaciones de Git arbitrarias por referencia y aplicarlas al HEAD actual. Usamos este comando para elegir una confirmación de una rama y aplicarla a otra.

¿Cuándo debemos usar el comando git cherry-pick?

Aunque útil, el comando git cherry-pick no siempre es la mejor práctica. El comando tradicional git merge se prefiere en algunos escenarios.

No obstante, hay ciertos escenarios en los que podemos encontrar el comando ideal. Hablemos de algunos.

Supongamos que está trabajando en un proyecto con varias ramas. Realiza cambios en una rama y luego descubre que está desprotegido en la rama equivocada.

Como estos cambios no pertenecen a esta rama, puedes mover los cambios a la rama correcta con el comando git cherry-pick.

Anote el hash de confirmación, cambie a la rama correcta con el comando git checkout y ejecute cherry-pick, como se ilustra a continuación.

$ git cherry-pick <commit-id>

El comando git cherry-pick también es ideal para la colaboración en equipo. Un proyecto tiene un código compartido entre los componentes frontend y backend.

Un desarrollador puede copiar código de otro usando el comando git cherry-pick.

También usamos el comando git cherry-pick para corregir errores. Supongamos que ha comenzado a trabajar en una nueva función en su proyecto e identifica un error existente en el proceso.

Puede crear un compromiso que corrija explícitamente el error y “elegirlo” en la rama “principal”. El comando también es ideal para restaurar confirmaciones perdidas.

el comando git merge

No hay mucho que decir sobre el comando git merge. Simplemente vincula el historial de confirmación de dos ramas y crea una confirmación de fusión.

Al fusionar los dos, puede introducir cambios desde la rama desarrollo a la rama principal. Es un método no destructivo de incorporar cambios de una rama a otra en lugar del comando git rebase.

Combinar es bastante simple. Todo lo que necesita hacer es cambiar a la rama que desea fusionar y ejecutar el comando. Aquí hay un ejemplo.

Suponiendo que tenemos algunas confirmaciones en la rama desarrollo que son relevantes para la rama principal, podemos incorporar estos cambios a la rama principal de la siguiente manera:

# Switch to the main branch
$ git checkout main
# Merge the two
$ git merge development

Diferencia entre git cherry-pick y git merge

Como vimos, ambos comandos son útiles cuando se integran cambios de una rama a otra. Sin embargo, la diferencia viene en cómo usamos cada comando.

El comando git cherry-pick es ideal para muestrear subconjuntos más pequeños de un gran repositorio de Git. Resulta útil cuando desea mover confirmaciones específicas entre ramas.

Por otro lado, el comando git merge es ideal para grandes cantidades de confirmaciones. No sería ideal “seleccionar” veinte confirmaciones de una rama a otra.

El comando git merge es más adecuado para tal escenario.

Dicho esto, cada comando tiene sus ventajas y desventajas. Hablemos de algunos.

El comando git cherry-pick reduce el desorden en nuestros repositorios a diferencia del comando git merge, que siempre introduce una confirmación de combinación extraña.

Por otro lado, el uso del comando git cherry-pick puede generar confirmaciones duplicadas y confundir a otros desarrolladores, especialmente si tiene un repositorio Git compartido.

El comando git merge lo ayudará a integrar cambios más rápido, especialmente cuando se trata de muchas confirmaciones. La desventaja de este compromiso es la posibilidad de encontrar conflictos de fusión.

Por supuesto, puede encontrar conflictos de fusión con el comando git cherry-pick, pero con el comando git merge, cuantas más confirmaciones, más conflictos es probable que encuentre.

Los comandos git merge y git cherry-pick son útiles cuando se incorporan cambios de una rama a otra en Git. La diferencia radica en cuándo y cómo usar cada comando.

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 Cherry-Pick

Artículo relacionado - Git Merge