The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Git: как откатиться назад, но оставить коммит для истории"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Контроль версий, Git, SVN, Bazaar, Mercurial)
Изначальное сообщение [ Отслеживать ]

"Git: как откатиться назад, но оставить коммит для истории"  +/
Сообщение от xintrea email(ok) on 17-Ноя-13, 16:51 
Я использую GIT единолично просто как хранилище истории версий, без ветвлений, слияний и т. п. Коммичу, коммичу, иногда смотрю когда и что написал.

Сейчас возникла необходимость сделать следующее: нужно откатить последний коммит, но так, чтобы он остался в истории. То есть, нужно "обойти" последний коммит, как показано на рисунке:

http://i.piccy.info/i9/9798454faefe38fd495ba76d15a86d17/1384...

Я нахожусь в точке 2. Нужно откатиться до точки 1, кое что поправить, и сделать точку 3. Потом точку 4, 5, и т.д. Но при этом "состояние" точки 2 должно остаться доступным в случае чего.

Читаю про "мягкие" и "жесткие" ресеты, и не понимаю, как работает мягкий ресет. Хотя, воде бы, именно он нужен в данном случае. Везде написано одно и то же:

«Мягкий» (с ключом "--soft") резет оставит нетронутыми ваши индекс и все дерево  файлов и директорий проекта, вернется к работе с указанным коммитом. Иными  словами, если вы обнаруживаете ошибку в только что совершенном коммите или  комментарии к нему, то легко можно исправить ситуацию.

Как это так "нетронутыми все дерево файлов и директорий проекта"? Тогда что поменяется после команды reset?

И к тому же, у меня нет ошибки в последнем коммите. Мне нужно просто вернуться на шаг назад, и "обойти" данный коммит, но так, чтобы всегда можно было вернуться к данному коммиту.

Как это можно сделать? Какую последовательность команд использовать?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Git: как откатиться назад, но оставить коммит для истории"  +/
Сообщение от Andrey Mitrofanov on 17-Ноя-13, 18:32 
> нужно просто вернуться на шаг назад, и "обойти" данный коммит, но
> так, чтобы всегда можно было вернуться к данному коммиту.
> Как это можно сделать? Какую последовательность команд использовать?

git branch saved-commit2 $$commit2
  ##может, git tag подойдёт, чтоб "висящий" коммит не ужался при git gc или типа
git rebase -i $$commit1
^^^-- там стереть строку commit2, сохранить, выйти

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру