Вот внезапно я решил в ветке убрать много мелких коммитов, возникших из-за разных ошибок. Делаем примерно так:
git checkout branch-name
# указываем коммит, в который все будет сливаться (остальные в истории должны быть расположены позже)
git rebase -i commit-id
# указываем в редакторе последовательность команд, сохраняем и выходим, следим за подсказками и сообщениями
# можно и --force, но --force-with-lease вроде не позволит убить коммиты, что отсутствуют локально
git push --force-with-lease
Сложная штука, эта rebase, да еще и я перед этим пробовал сделать то же самое из VS 2022, запутался, не вполне правильно откатил изменения... Но, в конечном счете, разобрался, и все исправил.