La selección de cereza de Git crea confirmaciones duplicadas

Después de seleccionar algunas confirmaciones de una twig a otra, todavía veo confirmaciones cuando se crea una request de extracción más tarde.

Digamos, por ejemplo, que hay un proyecto git que tiene dos twigs: Dev, Release.

Y el historial de compromisos está en el order siguiente.

DEV: a1, a2, a3, a4, a5, a6

LANZAMIENTO: a1, a2

Ahora, si selecciono cuidadosamente, cometeré a3 y a5 solo de Dev a Release. Ahora el historial de compromisos será como se muestra a continuación. commits cuidadosamente seleccionados tendrán nuevos SHA (b1 y b2).

LANZAMIENTO: a1, a2, b1, b2.

Más adelante, si bash crear una request de extracción desde la twig Dev a Release, aún veo los commits a3 y a5.

Pero en este caso, ¿cómo puedo encontrar diferencias en los commits entre estas dos twigs?

Vi algunos artículos que dicen 'rebase' pero no puedo entender la lógica detrás de esto.

Lo ideal es que rebase dev en la parte superior de la versión actualizada primero.

 git checkout dev git rebase release 

La lógica detrás de eso es que Git debería detectar que a3 y a5 son lo mismo que b1 y b2: lo que significa que a3 y a5 no se reproducirán en absoluto.
La nueva twig de desarrollo (desde la que creará un PR) ya no tendrá a3 ni a5.

Ver también:

  • " git merge after git cherry-pick : evitar duplicar compromisos "
  • " usando git rebase para eliminar git rebase duplicates "