When sabes de Cherry-pick

But luego de enteras que es mala práctica

Git cherry-pick es un comando en Git que selecciona y aplica commits específicos de una rama o branch a otra. Todo, sin tener que hacer un merge completo. Así, podemos copiar un commit específico y aplicarlo de forma aislada en la rama de destino, conservando su historial.
Escenarios de uso de Git Cherry Pick
Este comando facilita la incorporación precisa de cambios, optimizando la colaboración y el mantenimiento en proyectos de desarrollo de software. Veamos sus casos de uso.
1. Colaboración en equipo
Antes que nada, puede ser útil implementarlo cuando diferentes miembros del equipo trabajan en áreas similares del código, pues permite seleccionar y aplicar commits específicos a cada rama, facilitando el progreso individual.
2. Solución de bugs o errores
Cuando encuentras un error o bug, es importante solucionarlo y entregar la corrección a los usuarios lo más rápido posible. Con Git Cherry Pick, puedes aplicar rápidamente un commit de verificación en la rama principal, evitando que afecte a más usuarios.
3. Deshacer cambios y recuperar commits perdidos
A veces, una rama de funcionalidad puede ser obstoleta y no ser fusionada con la rama principal. O puede suceder que una solicitud de extracción (pull request) sea cerrada sin ser fusionada.
Git nunca pierde esos commits y, a través de comandos como git log y git reflog, puedes encontrar y aplicar los commits utilizando Git Cherry Pick.
¿Cómo funciona Git Cherry Pick? Ejemplos
Imaginemos que tienes un repositorio con el siguiente estado de las ramas:
a - b - c - d Rama Principal \\ e - f - g Rama de Características
El uso de Git Cherry Pick es bastante sencillo y se ejecuta de la siguiente manera:
git checkout rama-principal.git cherry-pick commitSha
Aquí, commitSha es una referencia al commit que deseas aplicar. Puedes encontrar la referencia del commit utilizando el comando git log. Supongamos que deseas usar el commit 'f' en la rama principal.
Una vez ejecutado el comando, el historial de Git se verá así:
a - b - c - d - f Rama Principal \\ e - f - g Rama de Características
De esta forma, el commit 'f' se ha incorporado correctamente a la rama principal.
El uso de Git Cherry Pick debería aplicarse con sabiduría, ya que puede generar duplicación de commits y complicaciones en el historial de cambios. Sin embargo, si sabes lo que estás haciendo, ¡adelante! Solo asegúrate de evitar su utilización si no estás seguro.
¿Cómo deshacer este comando en caso de conflicto?
Supongamos que estás usando GitHub para colaborar con un equipo en un proyecto y has realizado un cherry-pick de un commit de otra rama en tu rama local, pero ocurren conflictos durante este proceso y deseas detenerlo y volver al estado anterior.
Por suerte, en ese caso, puedes emplear el siguiente comando.
git cherry-pick --abort
Esto significa que puedes hacer las correcciones necesarias en tu rama local y volver a intentar el cherry-pick si así lo deseas.
Pon en práctica lo aprendido
Git Cherry Pick es un comando poderoso y conveniente que resulta especialmente útil en ciertas situaciones. Sin embargo, si abusas de él, podría considerarse una mala práctica en Github. Recuerda utilizarlo correctamente y comprender sus implicaciones en el historial de cambios.
Si necesitas aplicar commits específicos, no te preocupes. Siempre puedes usar el comando git log y Git Cherry Pick.
Git cherry-pick es un comando en Git que selecciona y aplica commits específicos de una rama o branch a otra. Todo, sin tener que hacer un merge completo. Así, podemos copiar un commit específico y aplicarlo de forma aislada en la rama de destino, conservando su historial.


Este comando facilita la incorporación precisa de cambios, optimizando la colaboración y el mantenimiento en proyectos de desarrollo de software. Veamos sus casos de uso.
Antes que nada, puede ser útil implementarlo cuando diferentes miembros del equipo trabajan en áreas similares del código, pues permite seleccionar y aplicar commits específicos a cada rama, facilitando el progreso individual.
Cuando encuentras un error o bug, es importante solucionarlo y entregar la corrección a los usuarios lo más rápido posible. Con Git Cherry Pick, puedes aplicar rápidamente un commit de verificación en la rama principal, evitando que afecte a más usuarios.
A veces, una rama de funcionalidad puede ser obstoleta y no ser fusionada con la rama principal. O puede suceder que una solicitud de extracción (pull request) sea cerrada sin ser fusionada.
Git nunca pierde esos commits y, a través de comandos como git log y git reflog, puedes encontrar y aplicar los commits utilizando Git Cherry Pick.
Imaginemos que tienes un repositorio con el siguiente estado de las ramas:
a - b - c - d Rama Principal
\\
e - f - g Rama de Características
El uso de Git Cherry Pick es bastante sencillo y se ejecuta de la siguiente manera:
git checkout rama-principal.git cherry-pick commitSha
Aquí, commitSha es una referencia al commit que deseas aplicar. Puedes encontrar la referencia del commit utilizando el comando git log. Supongamos que deseas usar el commit 'f' en la rama principal.
Una vez ejecutado el comando, el historial de Git se verá así:
a - b - c - d - f Rama Principal
\\
e - f - g Rama de Características
De esta forma, el commit 'f' se ha incorporado correctamente a la rama principal.
El uso de Git Cherry Pick debería aplicarse con sabiduría, ya que puede generar duplicación de commits y complicaciones en el historial de cambios. Sin embargo, si sabes lo que estás haciendo, ¡adelante! Solo asegúrate de evitar su utilización si no estás seguro.
Supongamos que estás usando GitHub para colaborar con un equipo en un proyecto y has realizado un cherry-pick de un commit de otra rama en tu rama local, pero ocurren conflictos durante este proceso y deseas detenerlo y volver al estado anterior.
Por suerte, en ese caso, puedes emplear el siguiente comando.
git cherry-pick --abort
Esto significa que puedes hacer las correcciones necesarias en tu rama local y volver a intentar el cherry-pick si así lo deseas.
Git Cherry Pick es un comando poderoso y conveniente que resulta especialmente útil en ciertas situaciones. Sin embargo, si abusas de él, podría considerarse una mala práctica en Github. Recuerda utilizarlo correctamente y comprender sus implicaciones en el historial de cambios.
Si necesitas aplicar commits específicos, no te preocupes. Siempre puedes usar el comando git log y Git Cherry Pick.
When sabes de Cherry-pick

But luego de enteras que es mala práctica

Este comando permite coger uno o varios commits de otra rama sin tener que hacer un merge completo. Así, gracias a cherry-pick, podríamos aplicar los commits relacionados con nuestra funcionalidad de Facebook en nuestra rama master sin necesidad de hacer un merge.
Para demostrar cómo utilizar git cherry-pick, supongamos que tenemos un repositorio con el siguiente estado de rama:
a - b - c - d Master
\
e - f - g Feature
El uso de git cherry-pick es sencillo y se puede ejecutar de la siguiente manera:
git checkout master
En este ejemplo, commitSha es una referencia de confirmación. Puedes encontrar una referencia de confirmación utilizando el comando git log. En este caso, imaginemos que queremos utilizar la confirmación 'f' en la rama master. Para ello, primero debemos asegurarnos de que estamos trabajando con esa rama master.
git cherry-pick f
Una vez ejecutado, el historial de Git se verá así:
a - b - c - d - f Master
\
e - f - g Feature
La confirmación f se ha sido introducido con éxito en la rama de funcionalidad
==Apuntes !! ✌==

LES ENSEÑAMOS GIT REBASE Y GIT CHERRY-PICK, PERO NO DEBERÍAN DE USARLOS PORQUE SON MALA PRÁCTICA

Paré el video para hacer una prueba rápida en mi proyecto y estuve sufriendo por el conflicto que me dio. Justo terminé de arreglar todo, le doy play nuevamente al video y ¡PUM!, Freddy habla del conflicto, jaja.

Nunca nada se borra en Git.
¿Qué hacer sin en un comentario de un archivo de programación insulto a mi jefe?
¿Hay alguna forma de eliminar ese commit?
jaja nos ofreciste la manzana, para decirnos al final que estaba mal comerla 😂😂😂
Resumen de la clase:
Crear una nueva rama y pasarse para esa rama.
Realizar los cambios en el código y realizar todos los commits necesarios.
Antes de ejecutar el comando git cherry-pick, se debe anotar el id del commit que queremos traer al master.
Para ello vamos a la rama donde esta el commit requerido (git checkout nombre_rama), ejecutamos el comando git log --oneline, copiamos el id del commit y nos regresamos a la rama master (git checkout master).
En la rama master, ejecutamos: git cherry-pick id_commit.
Git agregará al master el código requerido del commit indicado.
Después, de ser necesario, se ejecutan los comandos git pull origin master y git push origin master para subir los cambios al repositorio de github en la nube.
Si se necesitan traer todos los cambios de la rama de donde tomé el commit, se ejecuta desde master, git merge nombre_rama.
De haber conflictos al hacer merge, se resuelven dejando las líneas de código necesarias o utilizando las opciones de Vscode.
Cherry-pick es un poder demasiado grande pero de mala practica, hay que usarlo con demasiada responsabilidad, y aun así es una MALA PRACTICA.