Сброс произвольного коммита git?

Подскажите пожалуйста, можно ли удалить произвольный коммит из ветки (именно удалить , чтобы и в истории не было)? то бишь , спустя там некоторое время работы я понимаю , что у меня есть неправильный коммит , как мне его удалить из истории?
  • Вопрос задан
  • 1117 просмотров
Решения вопроса 2
mva
@mva
CEO, CTO, Lua/Gentoo/IPv6 Pioneer
git rebase -i %X% (где %X% = хеш коммита, идушего перед неправильным или @~N, где N = количество коммитов, которое прошло с коммита, идущего перед неправильным).
Откроется текстовый редактор.
В нём заменяете pick у неправильного коммита на drop. Сохраняете и закрываете. Гит вычистит его.
git push -f.

Только:
1) НИ В КОЕМ СЛУЧАЕ так не делайте, если с репозиторием работаете не вы один
2) в случае конкретно гитхаба, даже после этого фокуса неправильный коммит всё равно будет доступен по хешу. Полностью вычистить можно будет только дропнув репу и пересоздав ( и залив туда то, что получилось после rebase)

// пока писал ответ и отвлекался - уже ответил ManWithBear :)
Ответ написан
ManWithBear
@ManWithBear
Swift Adept, Prague
Что значит "неправильный коммит"?

UPD. В любом случае очень не рекомендуется править историю коммитов. Кому-то после вас её разбирать, и некоторые шаги разработки будут казаться бессмысленными после удаления промежуточных шагов.

UPD2. Если уж прямо в немоготу, то читаем про git rebase (но за это надо бить по рукам)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Заведите новую ветку и перетащите туда через cherry pick только нужные коммиты, ничего из истории удалять не стоит.
Ответ написан
Комментировать
@ashumkin
системный разработчик
тут все упирают на git rebase )
а я для полноты картины закину git filter-branch
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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