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