#git #github #merge #version-control
#git #github #объединить #контроль версий
Вопрос:
У меня есть репозиторий git, в который я вношу свои изменения, с несколькими фиксациями, которые еще не объединены.
У меня есть несколько локальных изменений, которые не зафиксированы, но я добавил файлы в git.
Я хотел получить изменения от master, что я и сделал
git stash
git pull
git stash pop
Теперь я понял, что мне не нужно было выполнять это извлечение, и мне нужно отменить извлечение из master, чтобы перейти в состояние, в котором в моем локальном хранилище будут только мои зафиксированные / незафиксированные изменения.
Вот как выглядит мой git reflog :
git reflog
565eb (HEAD -> mainline) HEAD@{0}: reset: moving to HEAD
565eb (HEAD -> mainline) HEAD@{1}: commit: <commit msg>
71edb HEAD@{2}: commit: <commit msg>
909ba HEAD@{3}: commit: <commit msg>
.
.
.
Я читаю git reset —hard как вариант, но не уверен, потеряю ли я свои незафиксированные изменения ИЛИ я могу сначала зафиксировать, а затем выполнить сброс?
Ответ №1:
git reset --hard
удалит ваши незафиксированные изменения.
Что я бы сделал, так это создал другой git stash
, чтобы сохранить мои незафиксированные изменения.
Затем в git reset --hard
, чтобы вернуться к нужной ревизии.
А затем используйте git stash pop
, чтобы вернуть ваши незафиксированные изменения обратно.
Если вы хотите быть уверены, что ничего не потеряете, вы можете сделать резервную копию своей папки перед любыми изменениями, чтобы у вас было сохраненное состояние и вы могли свободно экспериментировать.