Укажите расположение файла пользовательских атрибутов gitatributes для архива git.

Я хотел бы разоблачить git archive, но у пользователей есть возможность попросить исключить некоторые файлы или глобусы, чтобы результирующий архивный файл был не очень большим.

Обычно вы пишете список файлов / глобусов в .gitattributes а потом беги git archive, Но это означает, что только один человек может запросить архив для каждого хранилища на диске, так как он должен записать свой список игнорирования-экспорта в .gitattributes, а затем получить архив, прежде чем уступить кому-то еще. Кроме того, это означает, что любые настройки, которые у вас были там, ранее были засорены.

Есть ли способ, которым я мог бы написать в / tmp / attribute-1 или другой подобный временный файл, и сказать git archive читать этот файл.gitattributes вместо $repo/.gitattributes? Читая строку документа, это не похоже на это.

https://git-scm.com/docs/git-archive

https://git-scm.com/docs/gitattributes

1 ответ

Вы пропустили --worktree-attributes вариант git archive?

--worktree-attributes

Ищите атрибуты в .gitattributes файлы в рабочем дереве (см. раздел "АТРИБУТЫ").

...

Обратите внимание, что атрибуты по умолчанию взяты из .gitattributes файлы в дереве, которое архивируется. Если вы хотите настроить способ вывода результатов после факта (например, вы зафиксировали без добавления соответствующего export-ignore в его .gitattributes ), настроить проверенное .gitattributes файл по мере необходимости и использовать --worktree-attributes вариант. В качестве альтернативы вы можете сохранить необходимые атрибуты, которые должны применяться при архивировании любого дерева в вашем $GIT_DIR/info/attributes файл.

Поэтому вы должны оформить временное рабочее дерево, установить там нужные атрибуты gitatributes и использовать --worktree-attributes вариант.

Другие вопросы по тегам