@prolina

Откатить изменения git?

Здравствуйте всем) Такой вопрос: закоммитила ненужные изменения в одном файле(но коммит содержал изменения нескольких файлов), нужно вернуться к такому состоянию, как было до коммита в этом файле и добавить в коммит только одну строку(сейчас же добавлено много всего не нужного + одна нужная строка кода). После этого коммита было сделано много коммитов и всё было запушено. Сейчас надо как-то переписать этот коммит.
  • Вопрос задан
  • 14557 просмотров
Пригласить эксперта
Ответы на вопрос 3
alekseyHunter
@alekseyHunter
Android developer
Если нужно удалить коммит, и его не опубликовали:
git reset --hard HEAD^

Если опубликовали, делаем коммит для отмены коммита. После делаем push.
git revert commit-sha1
Ответ написан
Xuxicheta
@Xuxicheta
инженер
Нужно аккуратно вернуться к старому состоянию через git reset --hard хэшкоммита
Потом руками повторить все коммиты, которые были после (и они будут под вашим именем)
А затем запушить все это в удаленную репу через git push --force
Это изменит историю. Конечно если у вас есть соответвующие права.

Но если это возможно, ограничьтесь обычным revert (он добавляет новый коммит, откатывающий ваши изменения) или просто сделайте коммит с ручными правками. Гит так устроен, он не приветствует изменение истории.
Косяки бывают у всех, зачастую попытка их скрыть обходится дороже честного признания.
Ответ написан
Комментировать
tsarevfs
@tsarevfs
C++ developer
Если изменения происходили в репозитории которым пользовались только вы или это изменения в вашей ветке, то историю менять можно.
https://habr.com/en/post/201922/
git rebase -i ваш выбор для сложных изменений
После этого для перезаписи удаленной копии ветки нужно делать push --force
Важно: Изменения истории практически необратимы. Отменить ошибочные изменения будет сложно или невозможно. Скопируйте всю папку с репозиторием на случай проблем, если не уверены в своих действиях.
Важно: Если с веткой работают несколько человек или даже вы с 2 разных машин, например дома и на работе, то в случае изменения истории сохранить изменения с другой машины будет сложно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы