remove - push local tag to remote git
Git, cambio en la sucursal local afecta a otras sucursales locales? (2)
Tengo una rama maestra
ahora para algunas pruebas otras cosas hice una rama A
I checkout branch A modifica el archivo y cuando vuelvo a registrar master, los cambios también están ahí.
En otros repositorios tengo el comportamiento correcto.
I checkout branch A modifica el archivo y cuando vuelvo a registrar master, los cambios también están ahí.
Los cambios que no están comprometidos no pertenecen a ninguna rama. Están presentes solo en el árbol de trabajo (y en el índice si se agregaron).
Es una buena práctica tener un árbol de trabajo limpio cuando se cambian las ramas para evitar problemas cuando los cambios en el árbol de trabajo entran en conflicto con las diferencias entre las ramas cambiadas.
Debido a que la rama A
se acaba de crear y no confirmó nada en ella y tampoco en el master
, la rama A
apunta al mismo compromiso que el master
y el cambio entre A
y master
no requiere cambios en el árbol de trabajo. Por eso puedes cambiar las ramas sin entrar en conflicto.
Para colocar los cambios que acaba de hacer en una rama (digamos que la rama extraída es A
), debe agregar los valores al índice y luego confirmarlos:
git add .
git commit
Lea más acerca de git add
y git commit
.
Los cambios no comprometidos se moverán de una rama a otra. Para mantenerlos separados, debes stash
esos cambios antes de moverte a otra rama. Cuando regrese a su sucursal, puede apply
esos cambios para recuperarlos.
Como se ve a continuación:
>$ git status
On branch branch_1
Your branch is up-to-date with ''origin/branch_1''.
modified: dir/file.rb
>$ git stash
>$ git checkout <branch_2>
>$ git checkout <branch_1> #after finishing your tasks in branch_2 you can go back to branch_1
>$ git stash apply
Ahora recuperarás los cambios que has hecho anteriormente en branch_1