Во-первых, вам нужно убедиться, что никто не использует эту ветку или создать какую-то производную ветку из нее.Кроме того, сделайте резервную копию ваших изменений, если что-то пойдет не так.
После этого вы можете посчитать, сколько коммитов в этой ситуации.Например, если у вас есть 6 забавных коммитов для отмены, но нужно сохранить изменения файла, просто:
git reset --soft HEAD~6
Эта команда отменит 6 локальных коммитов и покажет в вашем git status
все изменения в файлахсреди этих 6 коммитов.
Теперь просто выполните свой единственный коммит:
git commit -am "Very nice and not funny commit message"
После этого вы не можете просто сделать git push
, потому что ваша локальная ветвь теперь сильно отличается отудаленная ветвь (с 6 старыми коммитами).
Итак, вам нужно принудительно нажать push для переопределения фактической ветки в удаленной ветке:
git push -f