Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.46.1 → 2.53.0 no changes
-
2.46.0
2024-07-29
- 2.43.1 → 2.45.4 no changes
-
2.43.0
2023-11-20
- 2.40.1 → 2.42.4 no changes
-
2.40.0
2023-03-12
- 2.38.1 → 2.39.5 no changes
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 no changes
-
2.37.0
2022-06-27
- 2.34.1 → 2.36.6 no changes
-
2.34.0
2021-11-15
- 2.29.1 → 2.33.8 no changes
-
2.29.0
2020-10-19
- 2.1.4 → 2.28.1 no changes
-
2.0.5
2014-12-17
ОБЗОР
git archive [--format=<формат>] [--list] [--prefix=<префикс>/] [<дополнительно>] [-o <файл> | --output=<файл>] [--worktree-attributes] [--remote=<репозиторий> [--exec=<пакет-отправки-архива-git>]] <указатель-дерева> [<путь>…]
ОПИСАНИЕ
Создаёт архив указанного формата, содержащий структуру дерева для именованного дерева, и записывает его в стандартный вывод. Если указан <префикс>, он добавляется к именам файлов в архиве.
git archive ведёт себя по-разному при получении ID дерева в отличие от ID коммита или ID метки. Когда предоставляется ID дерева, текущее время используется как время изменения каждого файла в архиве. С другой стороны, когда предоставляется ID коммита или ID метки, вместо этого используется время коммита, записанное в объекте-коммите, на который делается ссылка. Кроме того, если используется формат tar, ID коммита сохраняется в глобальном расширенном заголовке pax; его можно извлечь с помощью 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=<префикс>/
-
Добавить <префикс>/ к путям в архиве. Может повторяться; для всех отслеживаемых файлов используется самое правое значение. Смотрите ниже, какое значение используется
--add-file. - -o <файл>
- --output=<file>
-
Записать архив в <файл> вместо stdout.
- --add-file=<файл>
-
Добавить неотслеживаемый файл в архив. Может повторяться для добавления нескольких файлов. Путь к файлу в архиве формируется путём конкатенации значения последнего параметра
--prefix(если есть) перед этим--add-fileи базового имени <файл>. - --add-virtual-file=<путь>:<содержимое>
-
Добавить указанное содержимое в архив. Может повторяться для добавления нескольких файлов.
Аргумент <путь> может начинаться и заканчиваться символом двойной кавычки; содержащееся имя файла интерпретируется как строка в стиле C, т.е. обратная косая черта интерпретируется как escape-символ. Путь должен быть заключён в кавычки, если он содержит двоеточие, чтобы избежать неверной интерпретации двоеточия как разделителя между путём и содержимым, или если путь начинается или заканчивается символом двойной кавычки.
Режим файла ограничен обычным файлом, и параметр может быть подвержен зависящим от платформы ограничениям командной строки. Для нетривиальных случаев запишите неотслеживаемый файл и используйте вместо этого
--add-file.Обратите внимание, что в отличие от
--add-fileпуть, созданный в архиве, не зависит от параметра--prefix, так как в качестве значения параметра можно указать полный <путь>. - --worktree-attributes
-
Также искать атрибуты в файлах .gitattributes в рабочем каталоге (см. АТРИБУТЫ).
- --mtime=<время>
-
Установить время изменения записей архива. Без этого параметра используется время коммиттера, если <указатель-дерева> является коммитом или меткой, и текущее время, если это дерево.
- <extra>
-
Это могут быть любые параметры, которые понимает внутренний механизм архиватора. Смотрите следующий раздел.
- --remote=<repo>
-
Вместо создания tar-архива из локального репозитория получить tar-архив из внешнего репозитория. Обратите внимание, что внешний репозиторий может накладывать ограничения на то, какие выражения sha1 могут быть разрешены в <указатель-дерева>. Подробности смотрите в git-upload-archive[1].
- --exec=<git-upload-archive>
-
Используется с --remote для указания пути к git-upload-archive на внешней стороне.
- <указатель-дерева>
-
Дерево или коммит, для которого создаётся архив.
- <path>
-
Без необязательного параметра пути в архив включаются все файлы и подкаталоги текущего рабочего каталога. Если указан один или несколько путей, включаются только они.
КОНФИГУРАЦИЯ
- tar.umask
-
Эта переменная может использоваться для ограничения битов разрешений записей tar-архива. Значение по умолчанию — 0002, которое отключает бит записи для остальных (world). Специальное значение «user» указывает, что вместо этого будет использоваться umask пользователя, создающего архив. Подробности смотрите в umask(2). Если используется
--remote, то действует только конфигурация внешнего репозитория. - tar.<format>.command
-
Эта переменная указывает команду оболочки (shell), через которую должен быть передан вывод tar, сгенерированный
gitarchive. Команда выполняется в оболочке с сгенерированным tar-файлом на её стандартном вводе и должна выдавать окончательный вывод на свой стандартный вывод. Любые параметры уровня сжатия будут переданы команде (например,-9).Форматы
tar.gzиtgzопределяются автоматически и по умолчанию используют волшебную командуgitarchivegzip, которая вызывает внутреннюю реализацию 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 развернёт несколько меток-заполнителей (placeholders) при добавлении этого файла в архив. Подробности смотрите в 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
-
Создать сжатый tarball для выпуска v1.4.0.
- git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz
-
То же, что и выше, но с использованием встроенной обработки tar.gz.
-
gitarchive--prefix=git-1.4.0/-ogit-1.4.0.tar.gzv1.4.0 -
То же, что и выше, но формат определяется по выходному файлу.
- git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip >git-1.4.0.tar.gz
-
Создать сжатый tarball для выпуска v1.4.0, но без глобального расширенного заголовка pax.
- git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip
-
Поместить всё из каталога Documentation/ текущей головы (HEAD) в git-1.4.0-docs.zip с префиксом git-docs/.
-
gitarchive-olatest.zipHEAD -
Создать Zip-архив, содержащий содержимое последнего коммита в текущей ветке. Обратите внимание, что формат вывода определяется по расширению выходного файла.
-
gitarchive-olatest.tar--prefix=build/--add-file=configure--prefix=HEAD -
Создаёт tar-архив, содержащий содержимое последнего коммита в текущей ветке без префикса и неотслеживаемый файл configure с префиксом build/.
-
gitconfigtar.tar.xz.command"xz-c" -
Настроить формат «tar.xz» для создания tar-файлов, сжатых LZMA. Вы можете использовать его, указав
--format=tar.xzили создав выходной файл, например,-ofoo.tar.xz.
GIT
Является частью пакета git[1]