Чтобы удалить последний коммит только с сервера Git, но сохранить его на вашей локальной машине, вам потребуется выполнить несколько шагов.
Шаг 1: Переключитесь на ваш проект в командной строке или терминале. Убедитесь, что вы подключены к удаленному репозиторию, с которым вы хотите работать.
Шаг 2: Используйте команду git log
или git reflog
, чтобы просмотреть историю коммитов и определить хеш-код последнего коммита. Выглядеть это будет примерно так:
commit c2a7f4802e3d872b1b69e5b3871ee5e21f18c455 (HEAD -> master) Author: Your Name <[email protected]> Date: Mon Jan 1 00:00:00 2022 +0000 Removed unnecessary files
В этом примере, хеш-код последнего коммита - c2a7f4802e3d872b1b69e5b3871ee5e21f18c455
.
Шаг 3: С помощью команды git revert
, вы можете отменить последний коммит на сервере, но сохранить его изменения в рабочей директории. Запустите следующую команду, заменив <commit-hash>
на фактический хеш-код последнего коммита:
git revert <commit-hash>
Например:
git revert c2a7f4802e3d872b1b69e5b3871ee5e21f18c455
После выполнения этой команды, Git создаст новый коммит, который отменяет изменения последнего коммита на сервере.
Шаг 4: Теперь ваш локальный репозиторий содержит изменения отмененного коммита. Вам может понадобиться сбросить ваш локальный репозиторий на данную версию. Сначала определите хеш-код предыдущего коммита, используя команду git log
или git reflog
. Затем сбросьте свой локальный репозиторий до этого коммита с помощью команды git reset
, например:
git reset --hard <previous-commit-hash>
Шаг 5: После выполнения команды git reset
, ваш локальный репозиторий будет сброшен до состояния, предшествующего последнему коммиту. Изменения в последнем коммите останутся только на вашей локальной машине. Теперь вы можете продолжать работу с локальной версией репозитория, не затрагивая удаленный сервер.
Важно отметить, что эти команды изменяют историю репозитория, поэтому будьте осторожны и убедитесь, что вы выполняете их с пониманием того, что они делают.