Для проверки того, что находится в индексе, вы можете извлечь все, что находится в нем, во временное рабочее дерево следующим образом:
tmpdir=$(mktemp -d) # or your other chosen method
trap "rm -rf $tmpdir" 0 1 2 3 15 # do something different in other languages
GIT_WORK_TREE=$tmpdir git checkout-index --all
Убедитесь, что временный каталог существует и является пустым (mktemp -d
здесь делает это), и обязательно очистите его по окончании (trap
здесь делает это).
Обратите внимание, что правила атрибутов будут применены к шагу git checkout-index
. Используя git archive
, вы получаете больше контроля с export-ignore
и export-subst
. Если вы хотите использовать этот метод, вы можете превратить текущий индекс в объект дерева, используя git write-tree
, а затем использовать git archive
для этого объекта дерева.
Также обратите внимание, что метод git write-tree
вызывает ошибку с неотправленным индексом, в то время как метод git checkout-index
просто пропускает неотмеченные файлы из целевого рабочего дерева.