Git: ветви должны изолировать изменения или не должны?

Я думал, что уже неплохо разбираюсь в Git, но сейчас я был удивлен. Я думал, что ветки будут изолировать изменения от других веток, поэтому я начал большой экспериментальный рефакторинг в новой ветке. Этот рефакторинг подразумевал перемещение большого количества файлов. Когда я переключился на мастер, я все еще мог видеть изменения!

Я зашел в свой репозиторий песочницы, чтобы воспроизвести проблему:

$ 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

Почему? Вся суть создания ветки заключалась в том, что я мог попробовать что-то и выбросить это в случае неудачи. Toughts?

5
задан stivlo 1 July 2011 в 18:04
поделиться