Недавно возникла проблема с потерей множества несохраненных изменений кода на общей машине, и я пытаюсь точно понять, что пошло не так, потому что это заставило меня осознать, что в * 1019 все еще есть некоторые вещи * Я не до конца понимаю , Произошло следующее:
1) В Dev1 есть куча неустановленных изменений в основной ветке
2) Dev2 входит в систему и хочет протестировать объединение другой ветви функций с master. Он запускает git branch
и видит, что он уже в основной ветке. Запускает git checkout -b test && git fetch origin && git merge origin/feature
и создает приложение. Закончив тестирование, он затем откатывает объединение в тестовой ветке, используя git reset --hard HEAD~1
, прежде чем переключать обратно мастер, используя git checkout master
.
3) Dev1 снова входит в систему и обнаруживает, что он потерял все свои неустановленные изменения в локальной ветке master
Я понимаю, что это как-то связано с запуском git reset --hard HEAD~1
в тестовой ветке, но Я не могу понять, почему git никогда не вызывал ошибку перезаписи локальных файлов в любой момент.
Может кто-нибудь сломать это для меня?
Редактировать: для тех, кого раздражает Представьте, что кто-то будет использовать git, не понимая этого, не волнуйтесь - ни один из них не я. Я только что засвидетельствовал последствия, и мне было интересно узнать, как это произошло.