Поскольку вы зафиксировали, даже не имеет значения, существует ли локальный файл в вашей файловой системе в HEAD вашей ветви, потому что он является частью истории Git. Чтобы извлечь файл из более ранней фиксации, вы можете попробовать проверить его:
git checkout abc123 -- path/to/some/file.ext
где abc123
- хэш SHA-1 предыдущего коммита. Если вы не знаете, что такое хеш SHA-1
, просто запустите git log
из bash и найдите более ранний коммит вместе с хешем для этого коммита.
Edit:
Если вы действительно хотите вернуть всю ветку к более раннему коммиту, то в общем случае безопасный способ сделать это - git revert
. Итак, продолжая приведенный выше пример, если вы хотите отменить последний коммит abc123
, вы можете попробовать:
git revert abc123
Это добавит новый коммит поверх вашей ветви, который, однако, просто функционально отменит то, что делал предыдущий коммит HEAD. Это должно оставить все файлы в вашем проекте в их более раннем состоянии.