Понимание: после добавления второй строки в файл, вы ничего не зафиксировали .Сказав, что
Хорошо ... git пытается сохранить ваши незафиксированные изменения, если вы не заставите их их потерять.Это даже помешает вам делать что-то, чтобы вы не потеряли свои изменения.
Между командами 5 и 6 вы не зафиксировали изменения в файле, на самом деле, этодаже не по индексу.Команда 6 переключается на b, и эта ревизия указывает на ту же ревизию, на которой вы стоите, так что git «хорошо», переходя к b.Вы по-прежнему можете хранить файл в неизменном состоянии.
В команде 8 вы переключаете back на master, а git говорит «конечно» (вы не переходите к другой ревизии, поэтому вывсе в порядке).
Команда 11, файл, наконец, находится в стадии ... но опять же не перемещается из текущей ревизии, так что все в порядке.
Хотите увидеть, как git мешает вам двигатьсяиногда?Зафиксируйте прямо сейчас (на ветке b) и затем сделайте следующее:
git branch c master
git checkout c
echo hello > a
git checkout b # and here git should keep you from moving.