Git

Как отменить последнюю фиксацию в Git

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

Настройка тестового репозитория Git:

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

Чтобы клонировать один из моих репозиториев GitHub (https: // github.com / dev-shovon / my-project) выполните следующую команду:

$ git clone https: // github.com / dev-shovon / мой проект undo_commit_demo

Репозиторий GitHub следует клонировать в undo_commit_demo / каталог.

Теперь перейдите к undo_commit_demo / каталог следующим образом:

Фиксация, которую вы хотите отменить, может находиться в другой ветке, чем моя. Я хочу отменить последнюю фиксацию ie-fix ветка. Итак, я должен тянуть ветку ie-fix из моего репозитория GitHub.

Вы можете тянуть ie-fix ветку от GitHub следующим образом:

$ git pull origin ie-fix

ПРИМЕЧАНИЕ: Здесь, ie-fix это название филиала.

В ie-fix ветку нужно тянуть.

Теперь оформляем заказ в филиал (в моем случае, ie-fix), из которого вы хотите отменить последнюю фиксацию следующим образом:

$ git checkout ie-fix

Как видите, последняя фиксация ie-fix филиал aec00f3. В следующих разделах я покажу вам способы отмены последней фиксации в вашем репозитории Git.

Отменить последнюю фиксацию и сохранить изменения:

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

Как видите, последний коммит в моем ie-fix филиал aec00f3.

$ git log --oneline

Кроме того, мой плацдарм чистый.

$ git status

Теперь, чтобы удалить или отменить последнюю фиксацию, выполните следующую команду:

$ git reset - мягкая ГОЛОВКА ~ 1

Как видите, коммит aec00f3 ушел.

$ git log --oneline

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

$ git status

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

Отменить последнюю фиксацию и удалить изменения:

Если последний коммит, который вы хотите удалить, бесполезен для вас, вы можете подумать о полной перезагрузке вашего репозитория Git. Что делает жесткий сброс, он удаляет последнюю фиксацию, как и раньше. Но он также удаляет все изменения, которые вы сделали в последней фиксации. Делайте полный сброс только тогда, когда вы уверены, что вам больше не нужно ничего из последнего коммита.

Я собираюсь вытащить ie-fix ветку из моего репозитория GitHub снова, чтобы восстановить последнюю фиксацию aec00f3 и удалите его снова в этом разделе.

$ git pull origin ie-fix

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

Как видите, у меня чистая плацдарма.

$ git status

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

$ git reset --hard HEAD ~ 1

Последний коммит должен быть удален, а ГЛАВА указатель должен быть обновлен.

Как видите, коммит aec00f3 удаляется и фиксация непосредственно перед этим (3fffdee) это текущая последняя фиксация.

$ git log --oneline

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

$ git status

Обновление удаленного репозитория Git:

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

Как вы видете, git статус также показывает, что я на 1 коммит от удаленного репозитория.

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

Чтобы синхронизировать локальный репозиторий Git с репозиторием GitHub, выполните следующую команду:

$ git push --force origin ie-fix

Изменения в локальном репозитории Git должны быть синхронизированы с репозиторием GitHub.

Репозиторий GitHub необходимо обновить. Как видите, коммит aec00f3 больше нет в списке. Коммит непосредственно перед aec00f3, который 3fffdee теперь последняя фиксация.

Итак, вот как вы отменяете последнюю фиксацию в Git. Спасибо, что прочитали эту статью.

OpenTTD против Simutrans
Создание собственного транспортного симулятора может быть увлекательным, расслабляющим и чрезвычайно увлекательным занятием. Вот почему вам нужно попр...
Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...
SuperTuxKart для Linux
SuperTuxKart - отличная игра, созданная для того, чтобы бесплатно познакомить вас с Mario Kart в вашей системе Linux. Играть в нее довольно сложно и в...