Ситуация простая. Я закоммитил в репозитарий исправление кода. Потом поредактировал код и решил откатиться именно к той закоммиченной версии. Делаю git pull -- Система говорит, что "все уже обновлено". Подозреваю потому что я ничего еще из этого кода не коммитил.
Как мне не делая этот коммит просто откатиться до предыдущего состояния?
И чем fetch отличается от pull?
git pull = git fetch + git merge
То есть pull - это получение новых данных с origin (fetch) и слив их с текущей веткой. fetch просто получает новые данные (коммиты), но не сливает их в текущую локальную ветку.
Откат к предыдущему коммиту (если ненужные изменения вы не коммитили, то есть сброс изменений): git checkout HEAD . (точка - часть команды)
Команда, которую я привёл, вообще не откатывает на коммит, а просто приводит файлы в состояние указанного коммита (это для случая отмены изменений со времени последнего коммита). А для полноценного отката вот так: git checkout commit_hash. На этот раз без точки. Правда, в этом случае Вы можете попасть в состояние detached head и нужно будет создавать ветку в новом состоянии. Возможно, будет лучше воспользоваться командой git reset (только внимательно прочти мануал), она отменяет коммиты до указанного и передвигает указатель ветки на него. Просто я не до конца понимаю всю задачу.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.