• Время чтения ~1 мин
  • 04.03.2024
Git Revert Commit – How to Undo the Last Commit

Допустим, вы работаете над кодом в Git, и что-то пошло не так, как планировалось. Итак, теперь вам нужно отменить последний коммит. Как это сделать? Давайте узнаем!

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

Команда revert

Команда revert will create a commit that reverts the changes of the commit being targeted. You can use it to revert the last commit like this:

git revert <commit to revert>

используя git log. Первый коммит, описанный там, является последним созданным коммитом. Затем вы можете скопировать оттуда буквенно-цифровое имя и использовать его в revert команде.

A diagram showing that the git revert command creates a new commit to revert previous changes.
In this image, each circe represents a commit.

Команда

Вы reset также можете использовать эту reset команду для отмены последнего коммита. Но будьте осторожны – это изменит историю коммитов, поэтому использовать его следует редко. Он переместит HEAD, рабочую ветку, в указанный коммит и отбросит все, что после:Опция --soft означает, что вы не потеряете незафиксированные изменения, которые у вас могут быть.

git reset --soft HEAD~1

A diagram showing that git reset --soft will change your commit history, but will keep any unstaged changes you have.
In this image, each circle represents a commit.

Если вы хотите сбросить настройки до последнего коммита, а также удалить все непроиндексированные изменения, вы можете использовать --hard опцию:

git reset --hard HEAD~1

Это отменит последний коммит, а также любые незафиксированные изменения.

A diagram showing that git reset --hard will change your commit history, but will also remove any unstaged changes you have.
In this image, each circle represents a commit.

Использовать ли reset Git или revert в Git?

На самом деле вы должны использовать reset только в том случае, если фиксируемый коммит существует только локально. Эта команда изменяет историю фиксаций и может перезаписать историю, от которой зависят удаленные члены команды.

revert instead creates a new commit that undoes the changes, so if the commit to revert has already been pushed to a shared repository, it is best to use revert as it doesn't overwrite commit history.

Заключение

: Вы узнали о двух способах отмены последнего коммита, а также о том, когда лучше всего использовать один вместо другого.

Теперь, если вы заметили, что ваш последний коммит вносит ошибку или не должен был быть зафиксирован, вы знаете, как это исправить!

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297