Вам нужно выполнить более одной команды.Первый, как уже упоминали другие, это git reset
.Вам нужно будет найти набор изменений только за до того, от которого вы хотите избавиться, и использовать
git reset --hard <changeset>
. Это изменит текущий заголовок ветви (и индекс) на точкупри этом наборе изменений, но «плохой» набор изменений все еще присутствует .Он не будет включен, если вы нажмете, но будет включен, если вы клонируете свой локальный репозиторий, и на него все равно можно будет ссылаться в командах регистрации и извлечения.
Предполагая, что другихссылки на него (например, последующие коммиты, теги и т. д.), затем вы можете очистить его с помощью:
git gc --prune=now
Я нашел эту команду благодаря http://help.github.com/remove-sensitive-data/,, который также упоминает, что (какс hg strip
) если вы отправили этот «плохой» набор изменений в удаленное местоположение, вы не сможете удалить его с помощью обычных команд git, но вам нужно будет предпринять дополнительные шаги для удаления и повторного создания хранилищана сервере и очистите все кэшированные страницы.