Во-первых, удаление веток, меток и фиксаций (commits) не приводит к сокращению размера репозитория, т.к. git работает только на добавление.
Во-вторых, если изменения уже синхронизированы на удаленный репозиторий git, тогда с этим нужно просто жить.
И только если изменения локальны и не выполнен
git push
, тогда ветку откатить можно до нужной фиксации.
Допустим, ветка origin/development находится на удаленном репозиторие git, а локально были добавлены 2 фиксации с ненужными изменениями (бинарями dll, допустим). Таким образом, ветка development опережает origin/development на 2 фиксации. Тогда выполняем:
git reset --hard origin/development
Добавлено:
Есть еще деструктивная утилита bfg для удаления данных из истории git:
https://rtyley.github.io/bfg-repo-cleaner/
https://www.phase2technology.com/blog/removing-lar...
Если изменения только локальные, то можно поработать с этой утилитой локально и тогда на удаленный репозиторий git ничего из ненужного не попадет.
А если уже попали, тогда есть еще более опасная вещь: попытаться перевоссоздать репозиторий локально и перезалить его.