Pensé que ya tenía una comprensión decente de Git, pero en este momento me he sorprendido. Pensé que las sucursales aislarían los cambios de otras ramas, así que comencé una gran refactorización experimental en una nueva rama. Esta refactorización implicó mover muchos archivos. ¡Cuando cambié a maestro todavía podía ver los cambios!Git: las ramas deben aislar los cambios, ¿o no?
Fui a mi repositorio caja de arena para reproducir el problema:
$ git branch crazy-refactoring
$ git checkout crazy-refactoring
$ rm README
$ git checkout master
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: README
#
no changes added to commit (use "git add" and/or "git commit -a")
$ ls README
ls: cannot access README: No such file or directory
¿Por qué? Lo importante de mí al crear una sucursal, era que podía probar algo y tirarlo si no lo conseguía. ¿Toughts?
No ha confirmado la eliminación. Solo los cambios comprometidos están "aislados". –
Tienes razón, después de cometer README, en la rama de refactorización loca, reapareció en la rama principal. Tal vez me esté perdiendo algo, pero me parece un comportamiento extraño e indeseable. – stivlo
al principio también me lanzó, pero ahora confío en el comportamiento todo el tiempo cuando hago un montón de cambios en una rama y decido que preferiría tirarla en una rama separada para más adelante. – butter71