Правильный способ извлечения / восстановления файла из коммита с помощью Git 2.23+ (август 2019) использовать git restore
( менее запутанно, чем git checkout
)
git restore <SHA1>
Это обновит только ваше рабочее дерево по умолчанию.
Получить предыдущий SHA1 легко:
471d4d60dc21fbccb8c6b4616a00238c245f78f6~
Git the следующий SHA1 более сложный: см. « Как мне найти следующий коммит в git? (Child / children of ref) »:
git log --format=%H --reverse --ancestry-path ${1:-HEAD}..${2:\"$(git rev-parse --abbrev-ref HEAD)\"} | head -1
More in ответ Торека )
git rev-list --topo-order --ancestry-path --reverse <id1>...<id2> | head -1
Таким образом, вы можете создать скрипт, который будет получать родительский и дочерний элементы данного коммита, и использовать git restore
для получения / просмотра файлов этих коммитов.