Close

Git Cherry Pick

git cherry-pick es un potente comando que permite que las confirmaciones arbitrarias de Git se elijan por referencia y se añadan al actual HEAD de trabajo. La ejecución de cherry-pick es el acto de elegir una confirmación de una rama y aplicarla a otra. git cherry-pick puede ser útil para deshacer cambios. Por ejemplo, supongamos que una confirmación se aplica accidentalmente en la rama equivocada. Puedes cambiar a la rama correcta y ejecutar cherry-pick en la confirmación para aplicarla a donde debería estar.


Cuándo utilizar git cherry pick


git cherry-pick es una herramienta útil, pero no siempre es una práctica recomendada. Ejecutar cherry-pick puede generar confirmaciones duplicadas y, en muchos casos en los que su ejecución sí funcionaría, son preferibles las fusiones tradicionales. Por lo tanto, git cherry-pick es una herramienta útil solo en algunos casos...

Colaboración de Equipos


A menudo, un equipo puede encontrar a miembros trabajando en el mismo código o en torno a él. Es posible que una nueva función de un producto tenga un componente de backend y otro de frontend y que haya algún código compartido entre ambos sectores de un producto. Puede que el desarrollador del backend cree una estructura de datos que el frontend también deba utilizar. El desarrollador del frontend podría usar git cherry-pick para elegir la confirmación en la que se creó esta hipotética estructura de datos. Esta elección permitiría al desarrollador del frontend seguir avanzando con su parte del proyecto.

bases de datos
Material relacionado

Cómo mover un repositorio de Git completo

Logotipo de Bitbucket
VER LA SOLUCIÓN

Aprende a usar Git con Bitbucket Cloud

Correcciones de errores


Cuando se detecta un error, es importante ofrecer una solución a los usuarios finales cuanto antes. Por ejemplo, supongamos que un desarrollador ha comenzado a trabajar en una nueva función. Durante su desarrollo, identifica un error preexistente. Entonces, el desarrollador crea una confirmación explícita para aplicar una solución al error. Esta nueva confirmación de aplicación de solución se puede elegir mediante cherry-pick directamente en la rama principal para corregir el error antes de que afecte a más usuarios.

Cómo deshacer cambios y restaurar las confirmaciones perdidas


A veces, una rama feature puede quedar anticuada y no fusionarse con la rama main. En algunos casos, una solicitud de incorporación de cambios puede cerrarse sin llegar a fusionarse. Git nunca pierde esas confirmaciones y, a través de comandos como git log y git reflog, se pueden detectar y devolver a la vida ejecutando cherry-pick.

Cómo utilizar git cherry-pick


Para demostrar cómo utilizar git cherry-pick, supongamos que tenemos un repositorio con el siguiente estado de rama:

    a - b - c - d   Main
         \
           e - f - g Feature

Usar git cherry-pick es sencillo y se puede ejecutar de la siguiente manera:

git cherry-pick commitSha

En este ejemplo, commitSha es una referencia de confirmación. Puedes encontrar una referencia de confirmación con el comando git log. En este caso, imaginemos que queremos aplicar la confirmación f a la rama principal. Para ello, primero debemos asegurarnos de que estamos trabajando con la rama principal.

git checkout main

A continuación, ejecutamos cherry-pick con el siguiente comando:

git cherry-pick f

Una vez ejecutado, el historial de Git se verá así:

    a - b - c - d - f   Main
         \
           e - f - g Feature

La confirmación f se ha introducido correctamente en la rama principal

Ejemplos de git cherry pick


git cherry pick también se puede combinar con algunas opciones de ejecución.

-edit

Al combinar la opción -edit, Git solicitará un mensaje de confirmación antes de aplicar la operación cherry-pick.

--no-commit

La opción --no-commit ejecutará el comando cherry-pick, pero en lugar de hacer una nueva confirmación, moverá el contenido de la confirmación de destino al directorio de trabajo de la rama actual.

--signoff

La opción --signoff añadirá una línea de firma 'signoff' al final del mensaje de confirmación de cherry-pick.

Además de estas útiles opciones, git cherry-pick también admite una variedad de opciones de estrategia de fusión. Infórmate sobre estas opciones en la documentación sobre estrategias de fusión de Git.

Además, git cherry-pick admite la introducción de opciones para la resolución de conflictos de fusión, incluidas las siguientes: --abort, --continue y --quit. Estas opciones se tratan con mayor detalle con respecto a git merge y git rebase.

Resumen


La ejecución del comando cherry-pick es potente y cómoda, y resulta increíblemente útil en algunos casos. La ejecución de cherry-pick no debería aplicarse equivocadamente en lugar de git merge o git rebase. Para ayudar a encontrar confirmaciones en las que ejecutar cherry-pick, hace falta el comando git log.


Compartir este artículo
Tema siguiente

Lecturas recomendadas

Consulta estos recursos para conocer los tipos de equipos de DevOps o para estar al tanto de las novedades sobre DevOps en Atlassian.

Gente que colabora utilizando un muro lleno de herramientas

Blog de Bitbucket

Ilustración de Devops

Ruta de aprendizaje de DevOps

Demostraciones de funciones con expertos de Atlassian del Centro de demostraciones

Cómo funciona Bitbucket Cloud con Atlassian Open DevOps

Suscríbete para recibir el boletín de DevOps

Thank you for signing up