українська мова ▾ Topics ▾ Latest version ▾ git-archive last updated in 2.54.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>…​]

ОПИС

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

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

ОПЦІЇ

--format=<fmt>

Формат отриманого архіву. Можливі значення: tar, zip, tar.gz, tgz, а також будь-який формат, визначений за допомогою параметра конфігурації tar.<формат>.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 та базового імені <file>.

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

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

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

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

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

--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.<формат>.command. Перелік підтримуваних рівнів та стандартний рівень, що застосовується, якщо цей параметр не вказано, див. у довідковій сторінці налаштованої команди.

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

tar.umask

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

tar.<формат>.command

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

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

tar.<формат>.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 у дереві, яке архівується. Якщо ви хочете змінити спосіб формування вихідних даних після завершення процесу (наприклад, ви зробили коміт, не додавши відповідний запис export-ignore у файл .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]