Документы для веб-разработчиков

================================================================================ # Сброс изменений: git reset ================================================================================ # git reset используется для перезаписи последних изменений в git -------------------------------------------------------------------------------- # Смешанный reset (режим по умолчанию, можно не указывать флаг --mixed) -------------------------------------------------------------------------------- - перемещает указатель HEAD - заменяет файлы в индексе - не трогает файлы в рабочем каталоге - используется для отмены команды git add - используется, если хотим сформировать новый индекс. - используется для переделки последних коммитов. - используется для очистки текущего индекса от всех изменений - Используется если хотим сбросить в индексе конкретный файл -------------------------------------------------------------------------------- # Отмена комманды git add <files> (очистка индекса) git reset - Очистка индекса от изменений git reset HEAD - тоже самое # Исправление последних коммитов: git reset HEAD~ - Перемещение на один (или несколько) коммитов назад git reset --mixed HEAD~ - Тоже самое (флаг --mixed) можно не ставить # затем можно добавить файлы в индекс (т.к. он изменился) и перекоммитить # Чтобы отменить комманду git reset используется: git reset ORIG_HEAD # Если хотим сбросить в индексе конкретный файл (отмена git add для файла) git add index.php - добавили файл git reset index.php - отменили добавление файла в индекс -------------------------------------------------------------------------------- # Мягкий reset -------------------------------------------------------------------------------- - перемещает только указатель HEAD - отменяет коммит, и показывает подготовленные для коммита данные - не изменяет индекс - не изменяет рабочий каталог (оставляет в текущем состоянии) -------------------------------------------------------------------------------- git reset --soft HEAD~ - Перемещение на один коммит назад git reset --soft @~ - Тоже самое git reset --soft ORIG_HEAD - Возврат назад (если передамали делать reset) # Используется чтобы переделать неудачный коммит, например: git reset --soft @~ - откатываемся # вносим изменения в файлы git commit -C ORIG_HEAD - Взять для нового коммита описание из старого коммита # -c - вызовет редактор # -C - без вызова редактора # Или одной командой: git commit --amend - Добавить изменения в предыдущий коммит -------------------------------------------------------------------------------- # Жесткий reset -------------------------------------------------------------------------------- - очищает рабочий каталог - очищает индекс - используется для очистки рабочего каталога от внесенных изменений -------------------------------------------------------------------------------- git reset --hard - Очистка рабочего каталога от изменений git reset --hard HEAD - Тоже самое git reset --hard <hash> - Очистка рабочего каталога до состояние коммита git reset --hard ORIG_HEAD - возврат на коммит, с которого ушли (если передумали очищать) -------------------------------------------------------------------------------- # Жесткий reset с сохранением изменений -------------------------------------------------------------------------------- - очищает индекс - Незакоммиченные изменения оставляет в рабочем каталоге - безопасная команда - не трогает измененные и не закоммиченные в рабочем каталоге файлы -------------------------------------------------------------------------------- git reset --keep HEAD~ - Сброс файлов на состояние коммита, кроме файлов, для которых есть незакоммиченные изменения. -------------------------------------------------------------------------------- # Отмена конфликтного слияния -------------------------------------------------------------------------------- git reset --merge - оставляет не проиндексированные изменения - удяляет проиндексированные изменения, --------------------------------------------------------------------------------