Удалить коммиты из ветки в Git - PullRequest
2888 голосов
/ 27 августа 2009

Я хотел бы знать, как удалить коммит.

Под delete я имею в виду, как будто я не делал этот коммит, и когда я делаю push в будущем, мои изменения не будут передаваться в удаленную ветвь.

Я прочитал справку git и думаю, что команда, которую я должен использовать, - git reset --hard HEAD. Это правильно?

Ответы [ 28 ]

4 голосов
/ 29 мая 2018

Сброс на местный филиал

git reset --hard HEAD~<Number of commit> So git reset --hard HEAD~3

Принудительный толчок к началу

git push -f origin
3 голосов
/ 14 июля 2016

Сделайте резервную копию вашего кода во временную папку. Следующая команда будет сброшена так же, как сервер.

git reset --hard HEAD
git clean -f
git pull

Если вы хотите сохранить свои изменения и удалить последние коммиты

git reset --soft HEAD^
git pull
2 голосов
/ 09 февраля 2019

Я уже нажал. Нужно вернуть некоторые коммиты обратно удаленно. Перепробовал много вариантов, но только это из Джастин через Git Bush прекрасно работает для меня:

git reset --hard $GIT_COMMIT_HASH_HERE
git push origin HEAD --force
1 голос
/ 03 июля 2018

delete local commit

Как видно на изображении выше, я хочу удалить возвращенную фиксацию «test change 2» (идентификатор SHA1: 015b5220c50e3dfbb1063f23789d92ae1d3481a2 (идентификатор SHA1 можно получить с помощью команды gitk в git bash)).

Для этого я могу использовать (все приведенные ниже команды работают только на локальных. Вам нужно нажать после удаления):

  1. git reset --hard 515b5220c50e3dfbb1063f23789d92ae1d3481a2 // он создает резервную копию этого коммита (идентификатор SHA1 тестовое изменение 4 коммит 515b5220c50e3dfbb1063f23789d92ae1d3481a2 )
  2. git reset --hard HEAD~1 // резервное копирование перед одним коммитом.
  3. git reset --hard HEAD^ // Чтобы удалить последний коммит из git

после удаления:

after delete commit

1 голос
/ 24 июля 2015

git reset --hard

Голова git push origin --force

Если один или несколько коммитов помечены, сначала удалите тег (ы). В противном случае помеченный коммит не будет удален.

0 голосов
/ 26 июня 2019
// display git commit log    
$ git log --pretty=oneline --abbrev-commit

// show last two commit and open in your default editor
// then delete second commit line and save it
$ git rebase -i HEAD~2

Ссылка: Как удалить коммит в git, local и remote

0 голосов
/ 31 декабря 2014

Предполагая, что вы не отправили в удаленный репозиторий, вы можете повторно клонировать репозиторий. Это был мой метод выбора несколько раз.

0 голосов
/ 01 марта 2017

использовать git revert https://git -scm.com / docs / git-revert . Он вернет весь код, после чего вы сможете сделать следующий коммит. Затем глава укажет на этот последний коммит. отмененные коммиты никогда не удаляются, но это не повлияет на ваш последний коммит.

...