Me han abierto un PR en una rama llamada feature-b
que pronto se unieron para main
. Sin embargo, la escribí para apoyar a mi feature-a
rama, la cual está en curso. Quiero seguir trabajando en feature-a
y aprovechar el trabajo que hice en el feature-b
antes se ha unido a main
.
¿Cuál es la mejor manera para mí para hacer esto? Nuestro combina a main
son aplastadas, de modo que todos se compromete en feature-b
será reescrito como un único commit cuando se fusionaron para main
. Por lo tanto, de reajuste feature-a
en feature-b
ahora va a resultar en un conflicto futuro dolor cuando me combinación feature-a
a main
debido a que los mismos cambios que se han hecho en diferentes comete.
¿Cuál es la mejor manera para mí para incluir los cambios realizados en feature-b
en mi feature-a
rama minimizando al mismo tiempo el futuro dolor cuando finalmente me combinación feature-a
a main
?
ACTUALIZACIÓN
Me fui por delante y:
- Rebasada
feature-a
enfeature-b
- Hecho más cambios (sólo 1 commit) a
feature-a
mientrasfeature-b
se está revisando - Squash-combinado
feature-b
una vez que fue aprobado (no más cambios de los necesarios, por lofeature-a
ya tiene el código exacto que fue fusionada) - Tiró de última
main
y reajustadofeature-a
en la parte superior de la misma
Como se temía, git se queja de que hay varios archivos "ambos modificados" o "ambos añadido". Esto por sí solo sería un poco molesto, pero sencillo de solucionar. Lo que hace que sea increíblemente confuso, especialmente si cualquier paso de tiempo ha pasado - es la combinación de los comentarios en los archivos.
A pesar de que ambos main
y feature-a
las ramas tienen exactamente el mismo código en todos los archivos, me sale super molesto comportamiento:
- Para el "añadido tanto en" archivos de mezcla se agregan comentarios para "la CABEZA" (Cambio Actual)" y "padre de #HASH (mensaje de commit)". Estoy obligado a elegir entre uno u otro, aunque no son exactamente lo mismo!
- Para la "ambos modificados" los archivos, es aún peor. La "CABEZA (Cambio Actual)", se muestra el código correcto. Sin embargo, el "padre de #HASH (mensaje de commit)" sección de espectáculos de la mitad del código. De nuevo, aunque ambas ramas tienen todo el código!! No estoy bromeando, aceptando el "cambio entrantes" (en la etiqueta de VS Código) va a quitar el código que está en ambas ramas!
Si yo no hubiera hecho estos cambios en rápida sucesión, yo estaría irremediablemente perdido y confundido acerca de lo que git me está mostrando. Que de hecho ha ocurrido varias veces en el pasado, pero no podía poner un dedo en lo que iba mal. Ahora que he reproducido este y verificar el comportamiento, estoy completamente desconcertado en cuanto a lo de git está haciendo y cómo las personas se enfrentan con esta situación.
ACTUALIZACIÓN 2
OK, yo veo por qué iba a quitar el código de ahora. Es debido a que los cambios que he hecho en feature-b
estaban en múltiples revisiones, y los compromete terminó siendo aplastado cuando la mezcla para main
se ha producido. Esta es sin duda la fuente del dolor y por eso estoy tratando de averiguar un flujo de trabajo más sana.