Я читал здесь и много искал, но не нашел ответа, так что есть способ переключаться между фиксациями, как вы делаете с ветвями. Скажем, у меня есть эти коммиты: 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.