Найти последний коммит, который затронул данный путь. Поскольку файл не находится в коммите HEAD, этот коммит, должно быть, удалил его.
git rev-list -n 1 HEAD -- <file_path>
Затем извлеките версию при коммите, используя символ каретки (^
):
git checkout <deleting_commit>^ -- <file_path>
Или в одной команде, если $file
файл, о котором идет речь.
git checkout $(git rev-list -n 1 HEAD -- "$file")^ -- "$file"
Если вы используете zsh и у вас включена опция EXTENDED_GLOB, символ каретки не будет работать. Вместо этого вы можете использовать ~1
.
git checkout $(git rev-list -n 1 HEAD -- "$file")~1 -- "$file"