MyTetra Share
Делитесь знаниями!
Команда reset, откат
Время создания: 12.12.2016 20:39
Текстовые метки: reset
Раздел: root - git
Запись: xintrea/mytetra_db_armagedec/master/base/1481567976vidpk7l7hb/text.html на raw.githubusercontent.com

Помимо работы с индексом, git reset позволяет сбросить состояние

проекта до какого-либо коммита в истории. В git данное действие может быть двух видов: «мягкого»(soft reset) и «жесткого» (hard reset).


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

git commit … - некорректный коммит;

git reset --soft HEAD^


— переходим к работе над уже совершенным коммитом, сохраняя все состояние проекта и проиндексированные файлы


edit WRONGFILE

edit ANOTHERWRONGFILE

add.


Команда:


git commit -c ORIG_HEAD


— вернутся к последнему коммиту. Будет предложено редактировать его сообщение. Если сообщение оставить прежним, то

достаточно изменить регистр ключа:


git commit -C ORIG_HEAD


Обратите внимание на обозначение HEAD^, оно означает «обратиться к предку последнего коммита». Подробней описан синтаксис такой относительной адресации будет в разделе «Хэши, тэги, относительная адресация». Соответственно, HEAD — ссылка на последний коммит. Ссылка ORIG_HEAD после «мягкого» резета указывает на оригинальный коммит.

Естественно, можно вернуться и на большую глубину коммитов.


«Жесткий» reset (ключ --hard) — команда, которую следует использовать с осторожностью. git reset --hard вернет дерево проекта и индекс в состояние, соответствующее указанному коммиту, удалив изменения последующих коммитов:


git add.

git commit -m «destined to death»

git reset --hard HEAD~1


— больше никто и никогда не увидит этот позорный коммит.


git reset --hard HEAD~3

— вернее, три последних коммита. Никто. Никогда.


Если команда достигнет точки ветвления, удаления коммита не произойдет.


Для команд слияния или выкачивания последних изменений с удаленного репозитария примеры реcета будут приведены в соответствующих разделах.

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования