2017-02-18 17 views
1

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

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

Есть ли способ, который я мог бы написать в/tmp/attributes-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 файлов в рабочем дереве как скважины (смотрите раздел под названием «Attributes»).

...

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

Итак, вы должны проверить временную рабочую древо, установить там необходимые gitattributes и использовать опцию --worktree-attributes.

+0

Проверка временного рабочего дерева также изменяет правильность репозитория? Поэтому я не могу выполнять более одной операции за раз. –

+0

Так вы можете проверить временное дерево работы без изменения репозитория: 'tmpdir =" $ (mktemp -d) "; mkdir "$ tmpdir"/worktree; cd "$ tmpdir"/worktree; GIT_INDEX_FILE = "$ tmpdir"/index git --git-dir =/path/to/repo/.git checkout HEAD .' – Leon

+0

@KevinBurke У меня был отдельный вопрос с ответом: http://stackoverflow.com/questions/ 42322079/как к безопасно-кассе-а-временной рабочее дерево из-а-GIT-репозитория – Leon

 Смежные вопросы

  • Нет связанных вопросов^_^