¿Por qué el cambio no confirmado en una twig afecta a la twig principal?

Soy nuevo en git y estoy intentando experimentar con él para comprender los conceptos, en particular, la ramificación y la fusión.

Así que aquí está mi configuration,

Tengo una twig principal, creo un file de text maestro con text 'maestro'.
Ahora hago git checkout -b branch y creo una twig.
Edito el file 'principal' de la twig y agrego una línea de text.

Ahora si confirmo este cambio y vuelvo a Master, no afectará como debería, ya que los cambios de Branch no deberían reflejarse en la twig master.

Sin embargo, si dejo la twig sin confirmar y cambio a maestro, este cambio se refleja allí y git trata el file maestro como se editó, cuando lo hago

 git status -s 

Muestra ese file maestro con M.

¿Alguien puede explicarme cómo se reflejan los cambios no confirmados en la twig principal?

Git mantiene tus cambios no confirmados cuando revisas otra sucursal, lo cual es muy práctico.

Puede ver que los cambios no comprometidos "pertenecen" solo a su copy de trabajo, y no a ninguna twig o confirmación. Ellos son independientes. Cuando va a comprometer los cambios en una sucursal, por supuesto cambiarán si el pago tiene una versión diferente para el file.

La única exception a este comportamiento es si el cambio de twig trae un file no asignado a una versión diferente, en cuyo caso se cancela el pago:

 A--B - feature \ -C - master 

Digamos que el compromiso B en la twig de feature cambia una línea a foo.txt , y que tiene la twig master desprotegida. Has hecho un cambio diferente a foo.txt .

  1. Usted confirma el cambio en la function master y de pago

     git add foo.txt git commit -m "changed foo.txt" git checkout feature 

    Aquí no hay problema, el cambio se registra en el master y cuando se va a la feature foo.txt se cambia en consecuencia.

  2. Si no confirma y trata de realizar la feature pago, Git imprimirá un post apropiado y mantendrá la twig master desprotegida:

     git checkout feature 

    error: los cambios locales en los siguientes files se sobrescribirán al finalizar la compra:
    foo.txt
    Por favor, comprometa sus cambios o guárdelos antes de poder cambiar de twig. Aborto

En Git o en cualquier sistema de control de versiones, todas las operaciones de fusión deben realizarse en la máquina local. Por lo tanto, si tiene cambios no confirmados en cualquier twig para que no se pierdan / desapercibidos, se fusionarán con la twig recién activada / nueva. Tus cambios siempre estarán allí a less que uses git push. Por supuesto, podría haber habido un caso inverso también, pero a menudo es más beneficioso para el progtwigdor.