Как удалить последний коммит с сервера с сохранением на локали?

Чтобы удалить последний коммит только с сервера 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, ваш локальный репозиторий будет сброшен до состояния, предшествующего последнему коммиту. Изменения в последнем коммите останутся только на вашей локальной машине. Теперь вы можете продолжать работу с локальной версией репозитория, не затрагивая удаленный сервер.

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