Я использую GIT единолично просто как хранилище истории версий, без ветвлений, слияний и т. п. Коммичу, коммичу, иногда смотрю когда и что написал.
Сейчас возникла необходимость сделать следующее: нужно откатить последний коммит, но так, чтобы он остался в истории. То есть, нужно «обойти» последний коммит, как показано на рисунке:
http://i.piccy.info/i9/9798454faefe38fd495ba76d15a86d17/1384691418/12802/3836...
Я нахожусь в точке 2. Нужно откатиться до точки 1, кое что поправить, и сделать точку 3. Потом точку 4, 5, и т.д. Но при этом «состояние» точки 2 должно остаться доступным в случае чего.
Читаю про «мягкие» и «жесткие» ресеты, и не понимаю, как работает мягкий ресет. Хотя, воде бы, именно он нужен в данном случае. Везде написано одно и то же:
«Мягкий» (с ключом "--soft") резет оставит нетронутыми ваши индекс и все дерево файлов и директорий проекта, вернется к работе с указанным коммитом. Иными словами, если вы обнаруживаете ошибку в только что совершенном коммите или комментарии к нему, то легко можно исправить ситуацию.
Как это так «нетронутыми все дерево файлов и директорий проекта»? Тогда что поменяется после команды reset?
И к тому же, у меня нет ошибки в последнем коммите. Мне нужно просто вернуться на шаг назад, и «обойти» данный коммит, но так, чтобы всегда можно было вернуться к данному коммиту.
Как это можно сделать? Какую последовательность команд использовать?