Как удалить коммиты из 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
- это тот, который будет использоваться здесь, потому что вы запрашиваете полное удаление.