Чтобы вывести файл из индекса, я не уверен в существующем способе написания сценариев, но вы можете использовать ls-files
для запроса индекса:
$ git ls-files -s README
100644 67cfeb2016b24df1cb406c18145efd399f6a1792 0 README
$ git cat-file blob 67cfeb2016b24df1cb406c18145efd399f6a1792
# etc.
Вы можете объединить командыкак это:
git cat-file blob $(git ls-files -s README | awk '{print $2}')
(Хотя, конечно, я здесь заново изобретаю колесо.)
Однако, если вы просто хотите открыть оригинал и ваши изменения в редакторе, используйте difftool
команда.Он копирует проиндексированную версию во временный файл для вас и открывает vimdiff
(или все, что вы хотите), и это очень гибкий.