Как увидеть предыдущий коммит без удаления текущего?
Здравствуйте!
Создал коммит Один, сделал изменения, создал коммит Два.
git log показывает два коммита ( Один и Два)
Задача: Хочу посмотреть состояние проекта на коммите Один и потом вернуться к коммиту Два ( текущему, последнему)
1. Набираю команду git checkout + хеш коммита Один
2. Вижу изменения в файле html по состоянию как было вначале ( коммит Один), т.е. все Ок - посмотрел, доволен-)
3. запускаю git log - вижу только один коммит номер Один.
Вопрос:
Почему удалился коммит Два?
Как смотреть прошлые состояния проекта и потом вернуться к текущему состоянию проекта ( последнему коммиту)?
Он не удалился. Прочитайте Git Book, чтобы понимать что делает каждая команда
Вы сдвинули указатель HEAD на конкретный коммит. Теперь сделайте git checkout master (если основная ветка master, что скорее всего) и наблюдайте оба коммита.
Заметил, что если пытаюсь откатить к предыдущему коммиту через SHA-1 git checkout 09164b82059dbadcd75d82994e94d13eb63e210e1~
то получаю ошибку ( символ тильда в конце сам добавляется) git checkout 09164b82059dbadcd75d82994e94d13eb63e210e1~
error: pathspec '09164b82059dbadcd75d82994e94d13eb63e210e1~' did not match any file(s) known to git
НО, если через git hist git checkout e3ff6c0
то, все работает Вопрос: значит ли это что чрез SHA-1 нельзя переключаться на коммит.
Какие еще есть простые команды для переключения на нужный коммит?
Спасибо).
Если говорит что такого коммита нет, значит так и есть. Указать на коммит можно разными способами.
1. Полный SHA или его фрагмент
2. Имя ветки и тега
3. Относительная ссылка с использованием знаков ^ или ~
Вернуться на один коммит назад:
git checkout HEAD^1
Сергей!
Он не говорит, что коммита нет. Он говорит о несовпадении пути хеш с файлом.
Коммит и полный SHA есть и git log его показывает. И этот SHA я копирую и добавляю к команде git checkout
Антон Михайлов, тильда кстати означает ссылку на родителя этого коммита.
Зачем она в команде? ~ равносильно ~1
Если это первый коммит в истории проекта, то выдаст ошибку.