Cambios en la twig después de la fusión en git

Tengo dos twigs, foo y bar bajo master en un proyecto que estoy administrando con git. Supongamos que trabajo bajo foo y luego de terminar con él, fusiono los cambios con el master . Luego voy a la bar y repito el process. Pero luego alguien me dice que hay algo que tengo que cambiar en foo , así que mi primera idea fue repetir nuevamente, pero luego pierdo todo el trabajo hecho bajo la bar . ¿Cómo logro mi propósito de regresar a una sucursal y cuando me fusiono con el master no anulo los cambios realizados en la bar

Traté de crear una nueva twig para esos nuevos cambios, pero si este es el enfoque, creo que las twigs son un poco inútiles. Pero creo que git es lo suficientemente inteligente como para hacer lo que quiero.

Contestando con una serie de diagtwigs:

crear foo y bar off master después de commit C:

  foo / master A ---- B ---- C \ bar 

trabajar en foo y fusionar en master : ( git checkout master && git merge foo )

 foo D ---- E ---- F / \ (merge-commit) master A ---- B ---- C --------------- G \ bar 

Mientras tanto, bar progresó independientemente …

 foo D ---- E ---- F / \ master A ---- B ---- C --------------- G \ bar D' ---- E' ----- F' 

Ahora desea actualizar la bar con los cambios en el master ( git pull origin master )

 foo D ---- E ----------- F / \ master A ---- B ---- C ---------------------- G \ \ bar D' ---- E' ----- F' ---- G' (another merge-commit) 

otro cambio comprometido en foo

 foo D ---- E ----------- F ---- H / \ master A ---- B ---- C ---------------------- G \ \ bar D' ---- E' ----- F' ---- G' 

luego, para sincronizar la bar con el nuevo foo ( git checkout bar && git pull origin foo )

 foo D ---- E ----------- F ---- H / \ \ master A ---- B ---- C ---------------------- G \ \ \ \ bar D' ---- E' ----- F' ---- G'---- H' (another merge-commit) 

luego fusiona la bar en master (con master como twig activa, git merge bar )

 foo D ---- E ----------- F ---- H / \ \ master A ---- B ---- C ---------------------- G -----}-------- I (latest merge-commit) \ \ \ / bar D' ---- E' ----- F' ---- G'---- H' --- 

Luego voy a la barra y repito el process

¿Por qué no fusionas master o foo en el bar? Eso no está claro para mí.

Pero luego alguien me dice que hay algo que tengo que cambiar en foo, así que mi primera idea fue repetir nuevamente, pero luego pierdo todo el trabajo hecho bajo la barra de la barra.

¿Qué quieres decir con repetir? Confirma los últimos cambios y finaliza la otra twig.

Además, si realizó cambios que no confirmará, puede usar git stash para almacenar los cambios temporales.

Por favor especifique su pregunta para una ayuda más detallada.

Si su twig foo y bar aún no se ha eliminado, puede volver a establecer la base

 git checkout master git pull git checkout foo git rebase master git checkout bar git rebase master 

Pero, idealmente, si su twig foo y bar es una function / problema, solo debería fusionarlos en el maestro cuando esté listo. Si es demasiado grande, divídalo en twigs más pequeñas (anidadas o planas).

No anulo los cambios realizados bajo la barra

esto depende de tus cambios y por qué te importa, fusionas la bar para master todos modos. No es asunto del bar si el trabajo que ha realizado se modifica porque esa function / solución está list (es por eso que la fusiona). De hecho, cuando terminaste una twig de function / arreglo y la fusionaste, idealmente la borras porque está hecha.