He estado usando Git durante aproximadamente un año y creo que es fantástico, pero acabo de comenzar una segunda versión del proyecto y comencé una nueva rama para él. Estoy luchando un poco con la mejor manera de manejar las cosas en el futuro.git - omitiendo confirmaciones específicas al fusionar
Tengo dos ramas llamadas say master10 (para v1) y master20 (para v2). He estado haciendo correcciones de errores en v1 en branch master10, y desarrollando nuevas cosas de master20. Cada vez que hago una corrección de errores la fusiono en v2 revisando master20 y haciendo git merge master10
. Hasta aquí todo bien.
Ahora, sin embargo, he realizado un cambio en v1 que no quiero en v2, pero quiero continuar fusionando otras correcciones de errores. ¿Cómo le digo a Git que omita esa confirmación en particular (o un rango de confirmaciones), pero que en el futuro sigo queriendo combinar otras correcciones de errores?
Pensé que git rebase
podría ser lo que necesito, pero lea el documento y mi cabeza casi explotó.
Creo que lo que quiero es algo así como un comando "git sync" que le dice a git que dos ramas están ahora sincronizadas y en el futuro solo fusionará las confirmaciones de este punto de sincronización.
Cualquier ayuda apreciada.
Me pregunto, sin embargo, si eso no es un poco peligroso: ¿qué es el mástil ~ 3 no debe ser ignorado sino simplemente pospuesto? Con su solución, cualquier subsiguiente combinación de git no fusionaría el mástil ~ 3. – VonC
Para el compromiso pospuesto, crearía una "sub-bifurcación", haré exactamente lo que describes (incluyendo git merge -s our maint ~ 3), luego fusionaré todo de la sub-bifurcación a la maestra. Creo que un futuro "git merge maint" combinaría esta vez "mast ~ 3" – VonC
Creo que si necesita posponer la fusión de esa confirmación, no tiene más remedio que omitirla (combinar la suya) y luego aplicarla usando el comando cherry-pick. Una vez que el compromiso es alcanzable desde el maestro, no se puede fusionar de nuevo, evitar fusionar el mismo cambio dos veces es uno de los principales objetivos de git. – araqnid