Что делает git revert head? 🤔 | Инструкция и примеры использования
Команда "git revert HEAD" отменяет последний коммит в ветке.
Чтобы лучше понять, давайте рассмотрим пример:
git log --oneline
Эта команда позволяет просмотреть историю коммитов в репозитории.
Результат будет выглядеть примерно так:
f23a6d1 (HEAD -> main) Latest commit
ab1cd12 Previous commit
def4567 Initial commit
Если мы хотим отменить последний коммит, мы выполняем команду "git revert HEAD":
git revert HEAD
Git создаст новый коммит, который отменит изменения последнего коммита. Следующий результат покажет изменения в истории коммитов:
git log --oneline
Результат будет выглядеть примерно так:
f23a6d1 (HEAD -> main) Latest commit revert "Latest commit"
ab1cd12 Previous commit
def4567 Initial commit
Теперь последний коммит отменен, и его изменения больше не присутствуют в ветке.
Детальный ответ
git revert HEAD: что делает
Команда git revert HEAD
позволяет отменить последний коммит, внесенный в репозиторий. Она работает путем создания нового коммита, который отменяет изменения, внесенные в последний коммит.
Давайте разберемся в подробностях, что происходит, когда вы выполняете git revert HEAD
.
Когда вы коммитите изменения в Git, каждый коммит сохраняет снимок состояния вашего проекта на определенный момент времени. Каждый коммит имеет свой уникальный идентификатор (хэш-код), который позволяет вам ссылаться на конкретные версии вашего проекта. Ваш репозиторий по сути представляет собой граф коммитов, где каждый коммит ссылается на своего предка.
Когда вы выполняете git revert HEAD
, Git создает новый коммит, отменяющий изменения, внесенные последним коммитом. Это означает, что изменения, внесенные в последний коммит, будут отменены и вернутся к состоянию, предшествующему этому коммиту.
Например, предположим, что ваш репозиторий имеет следующую историю коммитов:
commit C (HEAD)
Author: John Smith
Date: Fri Jan 14 12:00:00 2022
Fix bug in login feature
commit B
Author: John Smith
Date: Fri Jan 14 11:00:00 2022
Update homepage
commit A
Author: John Smith
Date: Fri Jan 14 10:00:00 2022
Initial commit
Вы хотите отменить последний коммит с идентификатором C, потому что он внес ошибки в функционал входа в систему.
Когда вы выполняете git revert HEAD
, Git создаст новый коммит с изменениями, которые отменяют коммит C. Результат будет выглядеть следующим образом:
commit D (HEAD)
Author: John Smith
Date: Fri Jan 14 12:30:00 2022
Revert "Fix bug in login feature"
commit C
Author: John Smith
Date: Fri Jan 14 12:00:00 2022
Fix bug in login feature
commit B
Author: John Smith
Date: Fri Jan 14 11:00:00 2022
Update homepage
commit A
Author: John Smith
Date: Fri Jan 14 10:00:00 2022
Initial commit
Теперь ваш репозиторий содержит новый коммит D, который отменяет изменения, внесенные коммитом C. Исходный коммит C все еще остается в истории, но изменения, которые он внес, отменены в коммите D.
Вы можете видеть, что созданный коммит D имеет сообщение, содержащее слово "Revert". Это стандартное сообщение, генерируемое Git, чтобы указать на то, что это коммит, отменяющий предыдущие изменения.
Когда вы выполняете git revert HEAD
, Git автоматически создает коммит с помощью информации из предыдущего коммита. Вы также можете включить опцию --no-edit
, чтобы предотвратить открытие редактора сообщений и оставить сообщение коммита по умолчанию.
Теперь вы знаете, что делает git revert HEAD
. Он создает новый коммит, который отменяет изменения, внесенные в последний коммит, и добавляет его в историю вашего репозитория.
Пример использования:
git revert HEAD
Это выполнит отмену последнего коммита в вашем репозитории.
Обратите внимание, что команда git revert
может также принимать идентификатор коммита, который нужно отменить Вашим заданием было указано использование HEAD
, и поэтому был создан новый коммит, отменяющий изменения, внесенные последним коммитом в ветке.