2013-06-27 3 views
16

Я использую ГИТ-архив в архив подкаталог в мерзавца репо, например, так:ГИТ-архив подкаталог -

git archive -o ../subarchive.zip HEAD subdir/* 

Однако полученный архив поддерживает структуру подкаталог/каталогов, то есть содержание являются:

Когда я действительно хочу any.js и morestuff.js в корне архива.

Как сделать? Благодарю.

ответ

25

Вы можете сделать это так:

git archive -o ../subarchive.zip HEAD:subdir 

Кстати, легкий способ играть с командой и посмотреть, что он будет генерировать, если вы используете его в таком виде:

git archive --format=tar HEAD:subdir | tar t 
git archive --format=tar HEAD subdir | tar t 
# ... and so on ... 

Как только вы увидите, что вы ищете, вы можете изменить формат и использовать флаг -o, чтобы создать архив.

+0

Есть ли способ сделать это эффективно для удаленных репозиториев, например. чтобы получить только одну версию/одну ревизию гигантского репо, что нецелесообразно клонировать? Я попробовал '--remote', но это было смешно медленно. –

+0

Это работает, отлично. Я пытался понять, какая часть документации GIT говорила об этом, но не могла. Можете ли вы разработать PLS? – Meglio

+0

@Meglio 'git archive --help', дайте мне знать, если вы не можете найти что-то (а затем, пожалуйста, будьте как можно более конкретными) – janos