Как откатиться назад на стабильный commit и при этом сохранить полезный код, который ты сделал после допущенной ошибки?

Чтобы откатиться назад на стабильный commit в Git и при этом сохранить полезный код, сделанный после допущенной ошибки, можно использовать несколько методов.

Первый метод - использование команды git revert.

1. Откройте терминал и перейдите в директорию вашего Git-репозитория.

2. Введите команду git log для просмотра истории коммитов. Скопируйте хеш коммита, от которого вы хотите откатиться.

3. Введите команду git revert <commit-hash>, где <commit-hash> это хеш коммита, к которому вы хотите вернуться. Эта команда создаст новый коммит, который отменяет изменения, внесенные в выбранный коммит, но при этом сохраняет полезный код, который вы сделали после него. Ваш репозиторий теперь будет содержать оба коммита - коммит, который отменяет изменения, и коммит с полезным кодом.

4. Если в процессе выполнения git revert возникнут конфликты слияния, вам придется разрешить их вручную. Git выделит конфликтные файлы и пометит их в файле с конфликтом. Вам нужно будет отредактировать эти файлы, сохранить изменения и выполнить git add <file> для пометки их как разрешенные.

Второй метод - использование команды git checkout.

1. Откройте терминал и перейдите в директорию вашего Git-репозитория.

2. Введите команду git log для просмотра истории коммитов. Скопируйте хеш коммита, который представляет стабильную версию вашего кода.

3. Введите команду git checkout <commit-hash>, где <commit-hash> это хеш коммита, к которому вы хотите перейти. Git переключится на выбранный коммит, и ваш код будет откат до состояния, которое было на момент этого коммита.

4. Создайте новую ветвь, чтобы сохранить ваш полезный код. Введите команду git checkout -b <branch-name>, где <branch-name> - имя вашей новой ветки.

5. Перейдите обратно на предыдущую ветку с использованием команды git checkout <previous-branch>.

6. Теперь ваш репозиторий будет содержать две ветки - одну с откатом до стабильного коммита и другую с вашим полезным кодом.

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