На основе Как я могу отменить последнюю фиксацию в Git? .
Есть ли способ вернуть репозиторий Git к определенному коммиту?
Например:
- совершить "Первая фиксация"
- совершить б
- зафиксировать с
- совершить д
- совершать и
- совершать е
- совершить г
- commit h "Текущая версия"
Есть ли способ вернуться к «commit c»?
Вам просто нужно сделать,
git checkout commitC
гдеcommitC
находится хэш указанного коммита.Пример:
Вы ищете в журнале git фиксацию, к которой хотите вернуться:
git log
У вас будет что-то вроде этого:
Затем вы делаете это:
git checkout eb9b03c
Затем вы
HEAD
будете указывать наcommit3
результат, который вам нужен.Решение
Просто запустите следующую команду (замените
<hash>
):Объяснение
Чтобы иметь возможность переходить от одного подтверждения (коммита) к другому, вы должны знать номер (хеш), под которым оно было зарегистрировано. Принимая во внимание, что официальная книга Git на испанском языке, раздел 2.3 Git Basics — Viewing the commit history , говорит нам:
При выполнении команды
git log
в вашем проекте у вас будет что-то похожее на это:Хэш (или номер фиксации) будет буквенно-цифровым набором, за которым следует слово commit . Вы скопируете этот хэш, чтобы использовать его с командой
git checkout <hash>
, которая будет отвечать за перемещение указателя HEAD вашего проекта на указанную фиксацию. Наглядный пример (с учетом того, что вы являетесь проектом веткиmaster
):Таким образом, мы можем понять, что, хотя ваш указатель теперь указывает на предыдущий захват, ваши изменения после него все еще существуют.
Вы можете получить более официальную информацию на испанском языке по этой теме по следующей ссылке: 6.1 Git tools — выбор конкретных коммитов изменений