Как отменить коммит в Git: пошаговое руководство

В разработке программного обеспечения откат коммита в Git — это не просто полезный, но и очень важный навык. Будь то ошибка, вызванная недавним коммитом, или изменение, которое не сработало так, как планировалось, отмена изменений предыдущего коммита является важной практикой для поддержания чистой и функциональной базы кода.

Это пошаговое руководство поможет вам отменить коммит с помощью Git. Вы узнаете, как безопасно отменить изменения, не изменяя историю коммитов, гарантируя, что ваш проект останется стабильным, а ваши методы контроля версий останутся неизменными. Мы рассмотрим все: от определения фиксации, к которой необходимо вернуться, до выполнения команды и проверки результатов.

К концу этого руководства вы будете оснащены знаниями, позволяющими уверенно управлять своей историей Git и исправлять ее, чувствуя себя выполненным и уверенным в своих силах. Вы сможете легко ориентироваться в истории своего проекта, зная, что у вас есть навыки, позволяющие исправлять любые ошибки, которые могут возникнуть.

Что такое Git Revert?

«Git revert» — это команда Git, используемая для отмены изменений, внесенных определенным коммитом, с сохранением истории коммитов. В отличие от сброса Git, который может изменить историю коммитов и потенциально перезаписать предыдущие коммиты, Git revert создает новый коммит, который отменяет изменения, внесенные целевым коммитом. Этот подход полезен в средах совместной работы, где изменение истории коммитов может повлиять на других членов команды.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Ключевые моменты:

  • Неразрушающий: он не удаляет исходный коммит, а вместо этого создает новый коммит, который эффективно отменяет внесенные в него изменения.
  • Сохраняет историю: исходная фиксация остается в истории, что позволяет отслеживать все изменения и вести четкий контрольный журнал.
  • Безопасно для общих репозиториев: поскольку он не перезаписывает историю, его безопасно использовать в общих репозиториях, не влияя на работу других.

Вот базовый обзор команды Git revert:

  • Использование: git revert
  • Пример. Чтобы отменить конкретный коммит, вы должны использовать:
  • Рабочий процесс:
    • Определите коммит, который вы хотите отменить, с помощью журнала Git.
    • Используйте git revert, за которым следует хеш коммита, чтобы создать новый коммит, который отменяет изменения, внесенные в этот коммит.

Эта команда отличается от команды сброса Git, которая может изменить историю коммитов, и ее следует использовать с осторожностью в общих репозиториях.

Читайте также: Команды Git, которые следует знать в 2024 году

Как отменить фиксацию Git?

Чтобы выполнить коммит возврата Git, вам необходим идентификационный номер рассматриваемого коммита.

Шаги, которые необходимо выполнить

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

  • Используйте команду Git log или reflog, чтобы найти идентификатор коммита, который вы хотите отменить.
  • Введите команду Git revert (см. ниже), включая идентификатор фиксации, над которой вы хотите работать.
  • Предоставьте информативное сообщение о фиксации Git, чтобы объяснить, почему вам нужно выполнить возврат Git.

Сообщение о фиксации Git

Сообщения о фиксации Git объясняют, почему разработчику программного обеспечения пришлось выполнить фиксацию возврата Git для команды. Поэтому очень важно следовать семи общепринятым правилам написания стандартизированных сообщений о коммитах Git:

  1. Соблюдайте ограничение в 50 символов для строки темы.
  2. Пишите с заглавной только первую букву в теме письма.
  3. Не ставьте точку в конце темы.
  4. Поместите пустую строку между темой и телом сообщения.
  5. Ограничьте ширину тела сообщения 72 символами.
  6. Пишите в повелительном наклонении.
  7. Объясните, что было сделано и почему, но не объясните, как это было сделано.

Команда возврата Git

Синтаксис команды Git revert прост. Вот как будет выглядеть синтаксис, если вы захотите отменить коммит Git под названием 31416p54:

'git вернуть 31416p54'

Преодолейте разрыв между разработчиками программного обеспечения и операторами и развивайте свою карьеру в DevOps, выбрав нашу уникальную программу последипломного образования в DevOps. Зарегистрируйтесь на PGP в сотрудничестве с Caltech CTME сегодня!

Как работает Git Revert?

Вместо удаления коммита из истории проекта Git revert определяет, как инвертировать (или обратить вспять) изменения, созданные коммитом, а затем добавляет новый коммит, содержащий новое инвертированное содержимое. Этот процесс не позволяет Git потерять историю, что жизненно важно для проверки целостности истории и обеспечения плавного и надежного сотрудничества.

Возможность Git отменить предыдущую фиксацию может пригодиться, когда вы отслеживаете ошибку и обнаруживаете, что она была внесена посредством одной фиксации. Вместо того, чтобы вручную исправлять ошибку и создавать новый снимок, Git revert автоматически выполнит всю работу за вас.

В отличие от других команд «отмены», таких как Git checkout и Git reset, которые перемещают указатели ветки и ссылки HEAD на конкретный коммит, Git revert инвертирует изменения в конкретном коммите, создавая новый «откат коммита». Затем он обновляет указатели ссылок, указывая на эту новую фиксацию возврата, и делает ее кончиком ветки.

Помните, что Git revert не отменяет фиксацию в истории проекта; он отменяет изменения, внесенные в ошибочный коммит, и добавляет новый коммит с противоположным эффектом.

Что делает Git Revert?

Git revert — это команда, используемая для отмены изменений в репозитории Git путем создания нового коммита, который отменяет изменения, внесенные предыдущим коммитом. В отличие от git reset, который изменяет историю коммитов, git revert сохраняет историю коммитов, применяя новый коммит, который эффективно отменяет изменения указанного коммита. Это особенно полезно для исправления ошибок в среде совместной работы без нарушения истории проекта.

Рекомендуется: все, что вам нужно знать о команде Git PUSH.

Сброс или возврат

  • Команда Git Revert создает новый коммит, который отменяет изменения, внесенные предыдущим коммитом, сохраняя историю коммитов. Это полезно для безопасной отмены изменений в общих репозиториях без изменения истории коммитов.
  • Команда Git Reset изменяет историю коммитов, перемещая заголовок текущей ветки на указанный коммит. Его можно использовать для отмены изменений или изменения истории коммитов, что может быть рискованно в общих репозиториях, поскольку может изменить историю коммитов.

Git Revert Commit: пример

Начнем с создания чистого репозитория с помощью команды Git init.

git@commit /c/revert пример/

$ git инициализация

Инициализированный пустой репозиторий Git в примере возврата C:/git

Теперь мы добавляем пять файлов в репозиторий (или «репо»). Всякий раз, когда мы создаем новый файл, мы добавляем его в наш индекс Git и создаем новый коммит, содержащий значимое сообщение.

git@commit /c/revert пример/

$ коснитесь альфа.html

$ git добавить . && git commit -m “1-е git commit: 1 файл”

$ touch beta.html

$ git добавить . && git commit -m “2-й git commit: 2 файла”

$ touch charlie.html

$ git добавить . && git commit -m “3-й git commit: 3 файла”

$ коснитесь delta.html

$ git добавить . && git commit -m “4-й git commit: 4 файла”

$ коснитесь edison.html

$ git добавить . && git commit -m “5-й git commit: 5 файлов”

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

git@commit /c/revert пример/

$ лс

альфа.html бета.html чарли.html дельта.html edison.html

А команда git reflog показывает историю текущих коммитов.

git@commit /c/revert пример/

$ git рефлог

(ГОЛОВНОЙ -> мастер)

d846aa8 HEAD@{0}: фиксация: 5-я фиксация git: 5 файлов

0c59891 HEAD@{1}: коммит: 4-й коммит git: 4 файла

4945db2 HEAD@{2}: фиксация: 3-я фиксация git: 3 файла

defc4eb HEAD@{3}: фиксация: 2-я фиксация git: 2 файла

2938ee3 HEAD@{4}: фиксация: 1-я фиксация git: 1 файл

Итак, мы решили, что файл charlie.html нужно удалить. Это третий коммит с идентификатором 4945db2. Мы вводим следующую команду Git revert:

git@commit /c/revert пример/

$ git вернуть 4945db2

И престо! Файл charlie.html исчез, что подтвердит другой листинг каталога:

git@commit /c/revert пример/

$ лс

альфа.html бета.html дельта.html edison.html

Хотите освоить Git? Вот лучшие вопросы и ответы на собеседовании по Git

Как отменить фиксацию в Git Kraken?

Если вы используете Git Kraken, щелкните правой кнопкой мыши коммит на центральном графике и выберите Git revert commit в контекстном меню. Вас спросят, хотите ли вы зафиксировать изменения сейчас. Вы можете сохранить отмененный коммит или выбрать «Нет» и изменить сообщение о коммите Git или внести дополнительные изменения в код.

Отменить фиксацию в Git Lens

Если вы используете Git Lens, откройте свой репозиторий в VS Code, затем щелкните правой кнопкой мыши выбранный коммит в представлении «Коммиты» на боковой панели, чтобы получить доступ к опции отмены фиксации.

Отменить фиксацию в Git Kraken CLI

Если у вас установлен бесплатный интерфейс командной строки Git Kraken, используйте команду git revert следующим образом:

git вернуться

Значением является все, что соответствует критериям версии Git, которые определяет Git. Ревизии Git обычно являются частью ша-коммита, поэтому вам придется включить достаточно ша-файлов, чтобы Git Kraken CLI мог идентифицировать рассматриваемый коммит как уникальный в этом конкретном репозитории Git, например:

git вернуть 45111a

Объяснение сброса Git

Как и Git Revert, Git Reset — это инструмент, используемый для отмены изменений. Git reset имеет три основные формы вызова, соответствующие трем аргументам командной строки: –soft, –mixed и –hard. Аргументы, в свою очередь, соответствуют трем внутренним механизмам управления состоянием Git:

  • Дерево коммитов (HEAD)
  • Промежуточный индекс
  • Рабочий каталог

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

Программисты могут выполнить сброс настроек Git, набрав:

git сброс <файл>

Это действие удаляет указанный файл из промежуточной области, а рабочий каталог остается неизменным. Однако, если вы хотите сбросить промежуточную область, чтобы она соответствовала самой последней фиксации, оставив при этом каталог нетронутым, введите:

git сброс

Но будьте осторожны! Сброс Git — одна из немногих команд Git, из-за которых пользователи могут потерять свою работу! Он может отменить локальные изменения в рабочем каталоге и промежуточном индексе.

Хотели бы вы стать Full-Stack разработчиком?

Спрос на Full-Stack разработчиков выше, чем когда-либо. Если вы планируете сменить карьеру или хотите улучшить свои текущие навыки разработчика, Simplilearn предлагает идеальную платформу, которая поможет вам достичь ваших целей.

Программа последипломного образования в программе DevOps предназначена для предоставления комплексных знаний в области контроля версий, контейнеризации и AWS. Вы приобретете необходимые навыки посредством иммерсивного и практического обучения.

Часто задаваемые вопросы

1. Как мне вернуться к предыдущему коммиту локально в Git?

Используйте git checkout, чтобы переключиться на предыдущий коммит, но это не навсегда. Для постоянного изменения используйте git revert, чтобы создать новый коммит, который отменяет изменения.

2. Как вернуться к предыдущему коммиту в Git?

Используйте git reset –hard, чтобы вернуться к предыдущему коммиту, отбрасывая изменения в рабочем каталоге. Будьте осторожны, так как это может перезаписать незафиксированные изменения.

3. Как отменить отправку в Git?

Используйте git revert, чтобы создать новый коммит, который отменяет изменения, а затем отправьте новый коммит с помощью git push. Этот подход безопасен для общих репозиториев.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *