Не нужно копить.
git checkout -b new_branch_name
не касается ваших локальных изменений. Он просто создает ветку из текущего заголовка и устанавливает там заголовок.
Так что, думаю, ты этого хочешь.
--- Изменить, чтобы объяснить результат проверки мастера ---
Вы смущены, потому что checkout master
не отменяет ваши изменения?
Поскольку изменения носят только локальный характер, git не хочет, чтобы вы слишком легко их теряли. При смене ветки git не перезаписывает ваши локальные изменения. Результат вашего checkout master
:
M testing
, что означает, что ваши рабочие файлы не чистые. git изменил HEAD, но не переписал ваши локальные файлы. Вот почему ваш последний статус все еще показывает ваши локальные изменения, хотя вы находитесь на master
.
Если вы действительно хотите отменить локальные изменения, вы должны принудительно оформить заказ с помощью -f
.
git checkout master -f
Поскольку ваши изменения никогда не совершались, вы их потеряете.
Попытайтесь вернуться в свою ветку, зафиксируйте изменения, затем снова проверьте мастер.
git checkout new_branch
git commit -a -m"edited"
git checkout master
git status
Вы должны получить сообщение M
после первой проверки, но уже не после checkout master
, а git status
не должно показывать измененных файлов.
--- Изменить, чтобы устранить путаницу с рабочим каталогом (локальные файлы) ---
В ответ на ваш первый комментарий локальные изменения просто ... ну, локальные. Git не сохраняет их автоматически, вы должны сообщить об этом, чтобы сохранить их на потом.
Если вы внесете изменения и не будете явно фиксировать или хранить их, git не будет их версиями. Если вы измените HEAD (checkout master
), локальные изменения не будут перезаписаны, поскольку не сохранены.