Как удалить коммиты из git на Github и Bitbucket

Я случайно вытолкнул файлы из моего каталога .idea в моем проекте Django, который у меня был в моем файле .gitignore. Я пытаюсь полностью удалить фиксацию из своего репозитория bitbucket, так как есть кто-то еще, с кем я работаю в проекте, и он не может вытащить мои изменения, не затрагивая его собственные файлы .idea. Я видел другие вопросы SO, где говорят, что они используют git revert, однако я помню, что была другая команда, в которой вы нажали последний хороший коммит, который вы сделали, и все после этого было удалено из главной ветки. Например

История фиксации:

94ca48e

55fab05

3813803

Я хочу удалить 94ca48e и 55fab05. Однажды была найдена команда, где вы могли бы сделать 3813803 самой последней фиксацией, и все в удаленном репозитории после этой фиксации будет удалено, но я не могу найти его где-нибудь.

Ответ 1

Используйте git reset --hard 3813803. Это не может быть отменено и работает как локально, так и удаленно.

Для удаленного push с использованием git push --force origin master

Посмотрите документацию по git Атлассиана здесь.

Позвольте мне также процитировать оттуда:

Принимая во внимание, что возврат предназначен для безопасного отмены публичного коммита, git reset предназначен для отмены локальных изменений. Из-за их разных целей две команды реализованы по-разному: сброс полностью удаляет набор изменений, тогда как возврат поддерживает исходный набор изменений и использует новую фиксацию для применения отмены.

git reset - это тот, который будет использоваться здесь, потому что вы запрашиваете полное удаление.