Выдержка из справочной страницы git checkout:
При переключении ветвей, если у вас есть локальные модификации одного или нескольких файлов, которые отличаются между текущей веткой и ветвью, на которую вы переключаетесь, команда отказывается переключать ветки, чтобы сохранить ваши изменения в контексте.
Итак, если изменения не имеют никакого отношения к различиям между ветвями (как в вашем примере), это позволит вам переключиться. Если разница между ветвями изменяет тот же файл, что и у вас, он откажется - но вы можете указать опцию -m
, чтобы заставить его выполнить трехстороннее объединение между текущей веткой, рабочим деревом и новой веткой (вот где этот фрагмент из).
Чтобы сделать это описание немного более полным: предположим, что разница между мастером и экспериментом есть только в файлах A, B и C. Если вы измените A в своем рабочем дереве, вы не сможете проверить другую ветвь. , Однако, если вы измените D, вы можете просто проверить.