Главная Категории Контакты Поиск

git revert

Как отменить коммит, который уже был передан в удаленный репозиторий.

Git·06.08.2019·читать 1 мин 🤓·Автор: Alexey Myzgin

Если мы уже отправили свои изменения в удаленный репозиторий, то должны обратить внимание на то, что нельзя изменять историю коммитов используя такие команды, как rebase, reset, amend и т.д. Наши коллеги, возможно, уже стянули эти изменения, поэтому, это приведет к конфликтам слияния, если мы изменим историю git. В таких случаях есть несколько более безопасных команд для их отмены.

Например: выполнив git log мы можем увидеть, что уже синхронизированы с удаленным репозиторием через git push.

* 4411a19 - (HEAD -> master, origin/master) add fix (4 minutes ago) <Oleksii Myzgin>

Если такая ситуация возникает и мы хотим отменить, например, последний наш коммит add fix, то должны обратить внимание на то, чтобы не применять команды git, которые фактически меняют идентификаторы коммитов, такие как git reset или git amend и т. д.

Мы можем отменить коммит безопасным способом, использовав команду git revert. Ему нужно указать идентификатор коммита, который мы хотим вернуть.

git revert 4411a19

Нам сразу откроется режим редактирования и попросят указать сообщение коммита для этого изменения. Мы можем либо оставить так как есть, либо изменить.

Выполнив git log снова, мы можем увидеть, что был создан новый коммит, который является полной противоположностью коммита который мы указали.

Так как мы создали новое сообщение коммита, мы можем сохранить его, отправив в удаленный репозиторий.

Website, name & logo
Copyright © 2022. Alex Myzgin