українська мова ▾ Topics ▾ Latest version ▾ git-archive last updated in 2.46.0

НАЗВА

git-archive - Створення архіву файлів з іменованого дерева

СИНОПСИС

git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
	      [-o <file> | --output=<file>] [--worktree-attributes]
	      [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
	      [<path>…​]

ОПИС

Створює архів заданого формату, що містить деревоподібну структуру для іменованого дерева, та записує її у стандартний вивід. Якщо вказано <префікс>, він додається до імен файлів в архіві.

«git archive» поводиться інакше, коли йому надається ідентифікатор дерева, на відміну від ідентифікатора коміта або ідентифікатора тегу. Коли надається ідентифікатор дерева, поточний час використовується як час модифікації кожного файлу в архіві. З іншого боку, коли надається ідентифікатор коміта або ідентифікатор тегу, замість нього використовується час коміта, записаний у зазначеному об’єкті коміта. Крім того, ідентифікатор коміта зберігається в глобальному розширеному заголовку pax, якщо використовується формат tar; його можна витягти за допомогою «git get-tar-commit-id». У ZIP-файлах він зберігається як коментар до файлу.

ОПЦІЇ

--format=<fmt>

Формат результуючого архіву. Можливі значення: tar, zip, tar.gz, tgz та будь-який формат, визначений за допомогою параметра конфігурації tar.<format>.command. Якщо --format не вказано, а вихідний файл зазначено, формат визначається з назви файлу, якщо це можливо (наприклад, запис у foo.zip призводить до того, що вихід буде у форматі zip). В іншому випадку вихідний формат — tar.

-l
--list

Показати всі доступні формати.

-v
--verbose

Повідомляти про прогрес на stderr.

--prefix=<prefix>/

Додати префікс <prefix>/ до шляхів в архіві. Можна повторювати; його праве значення використовується для всіх відстежуваних файлів. Дивіться нижче, яке значення використовується параметром --add-file.

-o <file>
--output=<file>

Записати архів у <file> замість stdout.

--add-file=<file>

Додати невідстежуваний файл до архіву. Можна повторити для додавання кількох файлів. Шлях до файлу в архіві будується шляхом об’єднання значення останнього параметра --prefix (якщо такий є) перед цим --add-file та базової назви <файл>.

--add-virtual-file=<path>:<content>

Додати вказаний вміст до архіву. Можна повторити для додавання кількох файлів.

Аргумент <шлях> може починатися та закінчуватися символом подвійних лапок; ім’я файлу, що міститься в ньому, інтерпретується як рядок у стилі C, тобто зворотна коса риска інтерпретується як символ екранування. Шлях має бути взято в лапки, якщо він містить двокрапку, щоб уникнути неправильної інтерпретації двокрапки як роздільника між шляхом та вмістом, або якщо шлях починається або закінчується символом подвійних лапок.

Режим файлу обмежений звичайним файлом, і цей параметр може залежати від платформи та обмежень командного рядка. Для нетривіальних випадків напишіть невідстежуваний файл і використовуйте замість нього --add-file.

Зверніть увагу, що на відміну від --add-file, шлях, створений в архіві, не залежить від опції --prefix, оскільки повний <шлях> може бути вказано як значення опції.

--worktree-attributes

Також шукайте атрибути у файлах .gitattributes у робочому дереві (див. АТРИБУТИ).

--mtime=<час>

Встановити час модифікації записів архіву. Без цієї опції використовується час комітера, якщо <tree-ish> є комітом або тегом, і поточний час, якщо це дерево.

<extra>

Це можуть бути будь-які опції, які розуміє серверна частина архіватора. Див. наступний розділ.

--remote=<repo>

Замість створення tar-архіву з локального репозиторію, отримайте tar-архів з віддаленого репозиторію. Зверніть увагу, що віддалений репозиторій може накладати обмеження на те, які вирази sha1 дозволені в <tree-ish>. Див. git-upload-archive[1] для отримання детальної інформації.

--exec=<git-upload-archive>

Використовується з --remote для визначення шляху до git-upload-archive на віддаленому боці.

<tree-ish>

Дерево або коміт для створення архіву.

<path>

Без необов’язкового параметра шляху до архіву включаються всі файли та підкаталоги поточного робочого каталогу. Якщо вказано один або декілька шляхів, включаються лише вони.

ДОДАТКОВІ ОПЦІЇ БЕКЕНДУ

zip

-<digit>

Вкажіть рівень стиснення. Більші значення дозволяють команді витрачати більше часу на стиснення до меншого розміру. Підтримувані значення від -0 (лише для зберігання) до -9 (найкраще співвідношення). Якщо не вказано, значення за замовчуванням — -6.

tar

-<number>

Вкажіть рівень стиснення. Значення буде передано команді стиснення, налаштованій у tar.<format>.command. Дивіться сторінку посібника налаштованої команди, щоб отримати список підтримуваних рівнів та рівень за замовчуванням, якщо цей параметр не вказано.

КОНФІГУРАЦІЯ

tar.umask

Цю змінну можна використовувати для обмеження бітів дозволів записів tar-архіву. Значення за замовчуванням — 0002, що вимикає біт запису world. Спеціальне значення «user» вказує на те, що замість нього буде використовуватися umask користувача архіву. Докладніше див. umask(2). Якщо використовується --remote, тоді діятиме лише конфігурація віддаленого репозиторію.

tar.<format>.command

Ця змінна визначає команду оболонки, через яку слід передати tar-вивід, згенерований командою git archive. Команда виконується за допомогою оболонки зі згенерованим tar-файлом на стандартному вводі та повинна вивести кінцевий вивід на стандартний вивід. Будь-які параметри рівня стиснення будуть передані команді (наприклад, -9).

Формати tar.gz та tgz визначаються автоматично та за замовчуванням використовують магічну команду git archive gzip, яка викликає внутрішню реалізацію gzip.

tar.<format>.remote

Якщо значення true, увімкнути формат для використання віддаленими клієнтами через git-upload-archive[1]. За замовчуванням значення false для форматів, визначених користувачем, але true для форматів tar.gz та tgz.

АТРИБУТИ

export-ignore

Файли та каталоги з атрибутом export-ignore не будуть додані до архівних файлів. Див. gitattributes[5] для отримання детальної інформації.

export-subst

Якщо для файлу встановлено атрибут export-subst, то Git розгорне кілька заповнювачів під час додавання цього файлу до архіву. Див. gitattributes[5] для отримання детальної інформації.

Зверніть увагу, що атрибути за замовчуванням беруться з файлів .gitattributes у дереві, яке архівується. Якщо ви хочете налаштувати спосіб генерації виводу після факту (наприклад, ви зробили коміт без додавання відповідного ігнорування експорту в його .gitattributes), налаштуйте отриманий файл .gitattributes за потреби та скористайтеся опцією --worktree-attributes. Або ж ви можете зберегти необхідні атрибути, які мають застосовуватися під час архівування будь-якого дерева, у вашому файлі $GIT_DIR/info/attributes.

ПРИКЛАДИ

git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)

Створіть tar-архів, що містить вміст останнього коміту на поточній гілці, та розпакуйте його в каталог /var/tmp/junk.

git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz

Створіть стиснутий tar-архів для випуску версії 1.4.0.

git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz

Те саме, що й вище, але з використанням вбудованого tar.gz обробка.

git archive --prefix=git-1.4.0/ -o git-1.4.0.tar.gz v1.4.0

Те саме, що й вище, але формат визначається з вихідного файлу.

git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip >git-1.4.0.tar.gz

Створіть стиснутий tar-архів для випуску v1.4.0, але без глобального розширеного заголовка pax.

git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip

Помістіть усі дані з каталогу Documentation/ поточного керівника до git-1.4.0-docs.zip, з префіксом git-docs/.

git archive -o latest.zip HEAD

Створіть Zip-архів, який містить вміст останнього коміту в поточній гілці. Зверніть увагу, що формат виводу визначається розширенням вихідного файлу.

git archive -o latest.tar --prefix=build/ --add-file=configure --prefix= HEAD

Створює tar-архів, який містить вміст останнього коміту на поточній гілці без префікса та невідстежуваний файл configure з префіксом build/.

git config tar.tar.xz.command "xz -c"

Налаштуйте формат "tar.xz" для створення tar-файлів, стиснутих LZMA. Ви можете використовувати його, вказавши --format=tar.xz, або створивши вихідний файл типу -o foo.tar.xz.

ДИВ. ТАКОЖ

GIT

Частина набору git[1]