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
.
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.
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.