Ответ на ваш вопрос:
Обратите внимание, что я еще не делал никаких коммитов, просто разветвляюсь.
Если вы не фиксируете изменения, они всегда сохраняются в вашем рабочем каталоге. Переключение ветки не влияет на ваш рабочий каталог, и рабочий каталог также не влияет на ваш последний коммит. Вы видите, что файл удален, но в действительности он удаляется только из вашего рабочего каталога. Если вы хотите отменить изменения и вернуться к последнему коммиту, используйте эту команду:
git reset --hard HEAD
Таким образом, файл будет восстановлен снова.
Может быть, это не логика для вас, но такое поведение может быть полезным. Представьте, что у вас есть 2 ветки: master
и development
, и вы должны всегда работать, development
прежде чем переносить изменения в master
. Допустим, вы забыли переключиться на работу development
до того, как начать работать, а затем, прежде чем совершить коммит, вы поняли, что вы включены master
. Решение простое, просто перейдите к development
фиксации.