По определению, git reset --hard
выкинет незафиксированные изменения без возможности для их восстановления (ваша резервная система может помочь, но не Git).
На самом деле очень мало случаев, когда git reset --hard
- хорошая идея. В большинстве случаев есть более безопасная команда, чтобы сделать то же самое:
git stash
. Он сохранит резервную копию этих изменений, срок действия которых истечет через некоторое время, если вы запустите git gc
. Если вы на 99,9% уверены, что вам никогда не понадобится эти изменения, то git stash
все равно ваш друг для случая 0,1%. Если вы на 100% уверены, то git stash
все еще ваш друг, потому что у этих 100% есть ошибка измерения; -). HEAD
и кончик текущего ветвь в истории, тогда git reset --keep
- ваш друг. Он будет делать то же, что и git reset --hard
, но not отменит ваши локальные изменения. git stash && git reset --keep
является вашим другом. Научите свои пальцы не использовать git reset --hard
, он окупится один день.