Git

Как мне вернуться к предыдущей фиксации в Git?

Как мне вернуться к предыдущей фиксации в Git?
Команда «git revert» выполняет удивительно полезную операцию в среде Git. Иногда вы хотите отменить изменения, которые вы когда-то зафиксировали, без фактического удаления этих изменений из «журнала git», чтобы вы всегда могли повторить их в будущем, когда захотите. Команда «git revert» как раз позволяет вам это сделать. Это означает, что вы можете легко аннулировать или отменить эффект любой предыдущей фиксации, фактически не удаляя ее из своей истории Git. Таким образом, эта статья предназначена для того, чтобы научить вас методу возврата к предыдущей фиксации в Git в Ubuntu 20.04.

Метод возврата к предыдущей фиксации в Git в Ubuntu 20.04:

Чтобы объяснить вам метод возврата к предыдущей фиксации в Git в Ubuntu 20.04 мы разработали примерный сценарий. В этом сценарии мы сначала изменим уже существующий файл с именем abc.текст. Кроме того, у нас есть два других файла в нашем репозитории тестовых проектов с именем Stash1.txt и Stash2.txt, который мы не фиксировали ранее. Итак, мы будем фиксировать все эти изменения сразу. Затем мы попытаемся вернуться в предыдущее состояние i.е. состояние, в котором ни файлы Stash1.txt и Stash2.txt и файл abc.txt был изменен. Чтобы подробнее рассказать об этом сценарии, мы хотели бы провести вас через следующие шаги:

Шаг №1: перейдите в каталог проекта Git:

Сначала мы перейдем в каталог, в котором находится наш репозиторий проекта Git, как показано ниже:

компакт-диск / главная / kbuzdar / simplegit-progit

Как только эта команда будет выполнена, она изменит путь по умолчанию вашего терминала, как показано на следующем изображении:

Шаг № 2: Перечислите содержимое каталога проекта Git:

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

ls

Содержимое нашего репозитория проекта Git показано на следующем изображении:

Шаг № 3: Откройте и измените любой файл в каталоге проекта Git:

Мы выбрали файл abc.txt из нашего репозитория проекта Git для модификации. Теперь мы откроем этот файл с помощью редактора nano, как показано ниже:

sudo nano abc.текст

В этом файле написан случайный текст, как показано на следующем изображении:

Мы изменим этот текст, добавив в него «не», как показано на изображении ниже. После внесения этой модификации мы просто выйдем из редактора nano, сохранив наш файл abc.текст.

Шаг №4: Повторно инициализируйте репозиторий проекта Git:

После внесения всех желаемых изменений нам нужно повторно инициализировать наш репозиторий проекта Git с помощью следующей команды:

git init

После выполнения этой команды Git выполнит повторную инициализацию, одновременно отображая сообщение, показанное на изображении ниже, на вашем терминале:

Шаг № 5: Добавьте изменения в репозиторий проекта Git:

Теперь нам нужно добавить изменения в наш репозиторий проекта Git, выполнив следующую команду:

git добавить.

Успешное выполнение этой команды ничего не отобразит на нашем Ubuntu 20.04 терминал.

Шаг № 6: Зафиксируйте недавно внесенные изменения в репозитории проекта Git:

После добавления изменений в наш репозиторий проекта Git мы зафиксируем эти изменения с помощью следующей команды:

git commit -m «Сообщение для отображения»

Здесь вы можете изменить «Сообщение, которое будет отображаться» на фактическое сообщение, которое вы хотите отображать во время выполнения этой команды.

Когда эта команда будет выполнена, вы заметите, что два наших файла, которые ранее не были зафиксированы, i.е. Тайник1.txt и Stash2.txt будет зафиксирован.

Шаг № 7: проверьте историю коммитов Git:

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

git журнал --pretty = oneline

Вы можете легко увидеть из истории коммитов Git, показанной на изображении ниже, что Head указывает на нашу последнюю фиксацию i.е. транзакция, в которой мы зафиксировали файлы Stash1.txt, Stash2.txt и abc.txt (после модификации). Кроме того, мы отметим идентификатор транзакции этого коммита из истории коммитов, чтобы мы могли вернуть его на следующем шаге, используя этот идентификатор.

Шаг № 8: Выполните операцию «git revert»:

Первые пять символов идентификатора транзакции нашей последней транзакции - 220ac. Эти символы будут использоваться для ссылки на этот коммит. Теперь мы вернем этот коммит с помощью следующей команды:

git revert 220ac

Когда эта команда будет выполнена, в редакторе nano отобразится сообщение о том, что ваша транзакция с идентификатором транзакции 220ac будет отменена, как показано на изображении ниже:

Вам нужно нажать Ctrl + X после просмотра этого сообщения, чтобы вы могли видеть точный статус на вашем терминале, как показано на следующем изображении. Этот статус сообщит нам, что изменения, внесенные ранее i.е. модификация abc.txt и добавление Stash1.txt и Stash2.txt были отменены. Это также означает, что теперь наш файл abc.txt вернется в предыдущее состояние i.е. он будет представлять свое исходное содержание без изменений. Кроме того, файлы Stash1.txt и Stash2.txt будет удален.

Шаг № 9: еще раз проверьте историю коммитов Git:

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

Шаг № 10: Убедитесь, что команда «git revert» сработала успешно или нет:

Хотя мы уже видели, что наш проект Head в настоящее время указывает на транзакцию возврата, чего достаточно, чтобы указать, что команда «git revert» работает правильно. Однако мы все еще можем убедиться в этом, проверив статус Git. Здесь мы сможем увидеть, что больше не будет файлов для фиксации, как те, которые были там ранее.е. Stash1 и Stash2 уже были удалены с помощью операции возврата. Следовательно, больше не будет новых файлов для фиксации, как показано на следующем изображении:

Кроме того, мы можем попытаться перечислить содержимое нашего репозитория проекта Git, чтобы подтвердить удаление файлов Stash1.txt и Stash2.txt, как показано на изображении ниже. Здесь следует отметить, что файлы Stash1.txt и Stash2.txt были удалены нашей операцией возврата исключительно потому, что до фиксации транзакции с идентификатором транзакции 220ac не существовало этих двух файлов. Вот почему в результате отмены этого коммита эти файлы больше не будут существовать. Однако, если вы еще раз выполните операцию возврата для этой транзакции возврата i.е. вы попытаетесь обнулить эффект только что выполненной операции возврата, тогда вы снова сможете увидеть эти два файла.

Наконец, мы также можем проверить наш файл abc.txt еще раз, чтобы увидеть, вернулся ли он с исходным содержимым или нет. Мы просто откроем этот файл снова с помощью редактора nano, и на следующем изображении вы заметите, что модификация, которую мы сделали ранее в этом файле, была отменена.

Заключение:

Пройдя подробный сценарий, представленный вам в этой статье, вы, надеюсь, сможете использовать команду «git revert» в Ubuntu 20.04 очень эффективно. Эта команда отменит эффект любой предыдущей транзакции, сохранив ее запись в «журнале git», так что в любой момент вы можете легко вернуться к этой транзакции. Другими словами, мы можем сказать, что команда «git revert» фиксирует транзакцию, которая является точной инверсией команды, которая была зафиксирована ранее (без удаления предыдущей фиксации). Именно поэтому ему удается нейтрализовать его действие.

Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...