Как отменить коммит в 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:
- Соблюдайте ограничение в 50 символов для строки темы.
- Пишите с заглавной только первую букву в теме письма.
- Не ставьте точку в конце темы.
- Поместите пустую строку между темой и телом сообщения.
- Ограничьте ширину тела сообщения 72 символами.
- Пишите в повелительном наклонении.
- Объясните, что было сделано и почему, но не объясните, как это было сделано.
Команда возврата 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, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)