Introducción a GIT Cherry-pick
En este artículo, vamos a aprender sobre el GIT Cherry-pick en detalle. Hay muchos programadores trabajando en el mismo desarrollo de software desde diferentes rincones del mundo. Entonces, ¿cómo gestionar los códigos? ¿Cómo harán que otros entiendan qué cambios han hecho? ¿Cómo comprometer los códigos y mantener diferentes versiones? ¿Cómo fusionar los códigos?
Para resolver estos problemas, GIT entró en el mundo del desarrollo. GIT es un sistema de control de versiones distribuido y gestión de código fuente (SCM) excepcional. GIT fue creado por Linux Torvald, la persona que desarrolló el kernel de Linux. Obviamente, es una herramienta de código abierto donde cada programador puede contribuir a crear un software desde cualquier parte del mundo.
GIT tiene muchas características. Puede tener múltiples ramas. Un desarrollador puede escribir códigos después de crear su propia rama en el sistema local y fusionarla con la rama maestra u otras ramas del repositorio GIT remoto.
¿Qué es GIT Cherry-pick?
Imagínese, el trabajo del proyecto continúa para escribir un guión sobre la historia y la evolución de los teléfonos celulares. Entonces, hay muchas personas trabajando en el mismo proyecto y todas trabajan por separado. Sin embargo, al final, el guión de todos será compilado juntos.
Ahora, el miembro A está escribiendo sobre teléfonos Apple y de repente se da cuenta de que puede ser mejor. Entonces, informó el asunto a los otros miembros del equipo que están trabajando en el mismo proyecto. Otro miembro X le dijo que estaba escribiendo un guión en teléfonos Android y le pidió al miembro A que echara un vistazo.
Luego, el miembro A examinó el guión del compañero de equipo y descubrió que algunas de las porciones son iguales con algunos cambios que son realmente buenos. Por lo tanto, escogió esos cambios y pegó su propio guión. Esto es lo mismo que cherry-pick llamó en GIT en materia de industria de codificación de software.
Git-cherry-pick es un poderoso comando git y cherry-picking es un proceso para recoger un commit de una rama y aplicarlo a otra rama. En palabras simples, puede haber múltiples ramas donde los desarrolladores confirman sus códigos. Ahora, un desarrollador suponía que debía comprometer sus códigos en la rama A, sin embargo, cometió los códigos en la rama B por error. Esa vez, cherry-pick puede cambiar la confirmación a la rama correcta.
Utilice el siguiente comando (en el sistema Unix) para conocer las diferentes opciones para git-cherry-pick,
Mando:
$man git-cherry-pick
La sintaxis para el comando cherry-pick,
Sintaxis:
git cherry-pick (–edit) (-n) (-m parent-number) (-x)
¿Cuándo usamos GIT Cherry-pick?
Git-cherry-pick es una herramienta útil, sin embargo, no es una mejor práctica todo el tiempo. git-cherry-pick se puede usar en los siguientes escenarios,
- Para corregirlo cuando una confirmación se realiza en una rama diferente accidentalmente.
- Fusiones tradicionales preferibles
- Para aplicar los cambios en una confirmación existente.
- Confirmación duplicada
- Corrección de errores
¿Cómo funciona GIT Cherry-pick?
Es necesario implementar un defecto encontrado en el código en el entorno de producción y una solución. Una vez que se implementa el cambio y se corrige un defecto, ahora es el momento de traer este cambio de código nuevamente al entorno de Desarrollo para que el defecto no ocurra una y otra vez en el entorno de Producción en el futuro.
La primera opción es una combinación simple de git y es una solución ideal si funciona. Sin embargo, también se realizan otros cambios en el entorno de producción y estos no se pueden volver al entorno de desarrollo mientras se fusionan. Y en ese caso, cherry-pick es la opción correcta.
Cherry-pick trae ese commit que fue hecho solo para corrección de errores. No elige los otros commits.
Aquí hay una ilustración,
Fig. 1: G y H son los commits de la rama de producción. La rama de desarrollo de A a F se compromete. Se encuentra un problema en la rama de Producción. Se desarrolla una solución en H commit que debe aplicarse en la rama de Desarrollo, pero no se requiere que se aplique commit G.
Fig. 2: Ahora el commit H es seleccionado en la rama de Desarrollo y el commit resultante es H '. Los cambios de confirmación G no están incluidos en la rama de desarrollo.
¿Cómo usar GIT Cherry-pick con el ejemplo?
Supongamos que tenemos dos ramas (master y new_feature) (comando utilizado para ver la rama branch-git)
Realizamos el commit (resaltado) en la rama new_feature por error. (comando utilizado para ver el registro de logs-git comprometido)
Sin embargo, se supone que debe estar solo en la rama maestra. Primero copie el SHA resaltado en un bloc de notas.
Ahora usaremos un comando git-cherry-pick para mover esta confirmación a la rama maestra; sin embargo, antes de eso necesitamos cambiar a la rama maestra (comando utilizado para cambiar la comprobación de branch-git <nombre de la rama > )
Ahora podemos ver que el mismo commit está disponible en la rama maestra (comando used-git log)
Para obtener más ejemplos de comandos de git cherry-pick, consulte el siguiente enlace,
https://git-scm.com/docs/git-cherry-pick
Cosas importantes para recordar
Se deben recordar tres cosas al usar cherry-pick y trabajar en equipo.
1. mensaje de confirmación estandarizado: es mejor utilizar el mensaje de confirmación estandarizado y -x si seleccionamos una rama pública.
git cherry-pick -x
Evitará la fusión de conflictos en el futuro.
2. copie las notas: a veces, algunos de cherry-pick tienen notas y cuando ejecutamos cherry-pick, las notas no se copian. Por lo tanto, es mejor usarlo.
git notes copy
3. Seleccione múltiples confirmaciones cuando son lineales solamente: queremos seleccionar múltiples confirmaciones como G, H (Fig. 1), si son lineales, solo use el siguiente comando,
git cherry-pick G^..H
Conclusión
Supongamos que queremos recoger una confirmación específica de una rama diferente y aplicarla a la rama actual, estos son los pasos recomendados,
1. Busque el hash de confirmación que debe seleccionarse primero.
2. Vaya a la sucursal de destino.
3. git cherry-pick -x
Resolver los conflictos si ocurren. Si hay notas en la confirmación original, deben copiarse.
git notes copy
Artículos recomendados
Esta es una guía para GIT Cherry-pick. Aquí discutimos su funcionamiento y cómo usar git cherry-pick con ejemplos en detalle. También puede consultar los siguientes artículos para obtener más información:
- Herramientas Git
- Terminología Git
- Etiqueta de pago de Git
- ¿Qué es la rama de Git?