Git переключение между фиксациями

Я читал здесь и много искал, но не нашел ответа, так что есть способ переключаться между фиксациями, как вы делаете с ветвями. Скажем, у меня есть эти коммиты: a;b;c где c - мой last commit, могу ли я вернуться к commit a? Или вы должны сделать git diff и вручную изменить файлы?

Ответ 1

Просто введите git checkout a. Или, что более полезно, git checkout -b mybranch a, чтобы проверить a как новую ветвь mybranch.

Если вы хотите вернуть b и c, вы можете использовать git revert или полностью удалить их из текущей истории ветвей, вы можете git rebase -i a и выкинуть их.

Даже если вы собираетесь использовать git diff, вам не придется ничего делать вручную. Проверьте git format-patch, git apply и git am, чтобы автоматизировать создание и применение исправлений.

Ответ 2

Вы можете создать ветку из ревизии, из которой вы хотите работать. Номер версии можно увидеть, используя

   git log

Врезка из предыдущей версии

 git branch -f branchname rev

Ответ 3

git использует определение Commish. git определяет commitish как:

совершают иш

Указывает имя объекта фиксации или тега. Команда, которая принимает фиксацию аргумент в конечном итоге хочет работать с объектом commit, но автоматически объекты тегов разметки, которые указывают на фиксацию.

Это кажется немного неполным, так как ветки также часто рассматриваются как commit-ish.

В принципе, вы можете проверить все, что имеет хэш-код sha-1.