git restore --source
Восстанавливает файл из конкретного коммита, не трогая остальную историю.
Сигнатура
git restore --source <коммит> <путь>Позволяет вернуть отдельный файл к состоянию из любого коммита или ветки. Изменения попадают в рабочий каталог (и опционально в индекс с флагом --staged), история не переписывается — это просто правка файла, которую нужно потом закоммитить.
git restore --source HEAD~2 config.yml
git restore --source main --staged app.js