@IliaMal

Как откатиться к предыдущему состоянию проекта и выгрузить эту ветку в репозиторий?

Пришлось откатить последний pull с репозитория.
Попробовал через git revert 6759221be log показывает что появился новый коммит аналогичный до pull, но по факту я вижу на сайте изменения которые подтянулись с pull
Попробовал git checkout 6759221be такой вариант оказался удачным, теперь все изменения откатились, но status показывает
HEAD detached at 6759221be
nothing to commit, working tree clean

Я пытаюсь выгрузить данную ветку через git push -f origin master но в ответ получаю Everything up-to-date и как следствие в репозитории мой некачественный коммит не перезаписывается.

Как мне коммит 6759221be сделать последним и выгрузить на GitHub?
  • Вопрос задан
  • 486 просмотров
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Расшифруйте свою фразу
Пришлось откатить последний pull с репозитория.

Пришлось что-то сделать? Что именно вы сделали? Либо вы только собираетесь что-то сделать? Например, Pull подгрузил актуальный мастер с GitHub, в котором коллеги сделали какую-то работу и вы теперь хотите выкинуть их работу в корзину и откатить проект?

git revert 6759221be
Эта команда отменяет действия некоего коммита 6759221be. Обычно это самый правильный и безопасный способ отменить какие-то изменения, при работе в команде.

git checkout 6759221be
Этой командой мы отрываем голову и выходим из мастера в неопределённое состояние. Непонятно чего вы хотите этой командой добиться. Делать в данный момент Push бесполезно, так как вы НЕ в мастере. git push -f резонно вам говорит что локальный мастер согласован с внешним. Ведь вы ничего не меняли в мастере, а просто переключили состояние рабочего каталога на левое состояние, не совпадающее ни с какой веткой.

Конечно можно вернуться в мастер и сделать git reset --hard 6759221be
Но таким образом вы создадите фактически новый мастер и если его принудительно отправить на гитхаб, то всё равно
«Кто нибудь начнет путаться, забудет что теперь надо использовать условный master2»,
а точнее увидят что их мастеры и мастер на гитхабе это совершенно разные ветки и нужно будет каким-то образом выходить из положения. Поэтому правильней не пересоздавать ветки а добавлять revert-коммиты с отменой изменений.

Я так и не понял, что именно вы сделали или хотите сделать.
Есть подозрения, что откатить вы хотите не pull, а push со своим не очень удачным коммитом.

В любом случае, если вы хотите откатить состояние, то и изменяйте текущее состояние проекта в рабочем каталоге. В переписывании истории коммитов нет никакого смысла. Нет ничего страшного в том, что неудачный коммит виден в log, главное чтобы в итоге проект получился правильный.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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