Укажите расположение файла пользовательских атрибутов gitatributes для архива git.
Я хотел бы разоблачить git archive
, но у пользователей есть возможность попросить исключить некоторые файлы или глобусы, чтобы результирующий архивный файл был не очень большим.
Обычно вы пишете список файлов / глобусов в .gitattributes
а потом беги git archive
, Но это означает, что только один человек может запросить архив для каждого хранилища на диске, так как он должен записать свой список игнорирования-экспорта в .gitattributes
, а затем получить архив, прежде чем уступить кому-то еще. Кроме того, это означает, что любые настройки, которые у вас были там, ранее были засорены.
Есть ли способ, которым я мог бы написать в / tmp / attribute-1 или другой подобный временный файл, и сказать git archive
читать этот файл.gitattributes вместо $repo/.gitattributes
? Читая строку документа, это не похоже на это.
1 ответ
Вы пропустили --worktree-attributes
вариант git archive
?
--worktree-attributes
Ищите атрибуты в
.gitattributes
файлы в рабочем дереве (см. раздел "АТРИБУТЫ")....
Обратите внимание, что атрибуты по умолчанию взяты из
.gitattributes
файлы в дереве, которое архивируется. Если вы хотите настроить способ вывода результатов после факта (например, вы зафиксировали без добавления соответствующегоexport-ignore
в его.gitattributes
), настроить проверенное.gitattributes
файл по мере необходимости и использовать--worktree-attributes
вариант. В качестве альтернативы вы можете сохранить необходимые атрибуты, которые должны применяться при архивировании любого дерева в вашем$GIT_DIR/info/attributes
файл.
Поэтому вы должны оформить временное рабочее дерево, установить там нужные атрибуты gitatributes и использовать --worktree-attributes
вариант.