Как перезаписать старые коммиты в гите?

Ситуация следующая:
Вел разработку в ветке master, после чего потребовалось откатиться на три коммита назад в связи с их ненадобностью, сделал это командой git checkout. Далее уже вел разработку и делал коммиты с точки отката.

Проблемы возникли когда решил запушить изменения. Начало выдавать ошибку:
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use

    git push origin HEAD:<name-of-remote-branch>


Позже решил проверить на что ругается и через команду git branch выяснил что нахожусь я вовсе не в ветке master а в некой (HEAD detached from 2c38d2f) которая по всей видимости создалась как альтернативное ответвление.

Вопрос такой: как мне теперь адекватно слить мои изменения в master?
  • Вопрос задан
  • 1245 просмотров
Решения вопроса 1
ManWithBear
@ManWithBear
Swift Adept, Prague
git checkout -b tmp
git checkout master
git checkout -b master_old
git checkout master
git reset --hard COMMITHASH // последний полезный комит из мастера
git merge tmp
git branch -d tmp
git push --force origin master
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы