Close

Архив репозитория Git: как экспортировать проект Git

Иногда бывает полезно создать архивный файл репозитория Git. Такой файл объединяет в себе несколько других файлов, которые можно извлечь. В Git есть отличные возможности, позволяющие сохранять подробную историю разработки и вести совместную работу. Однако облегченные архивные файлы не включают метаданные Git, а потому их проще распространять среди пользователей или использовать для долгосрочного, «холодного» хранения.


Для чего нужна команда git archive?


git archive — это утилита командной строки Git, с помощью которой можно создать архивный файл из указанных ссылок Git, таких как коммиты, ветки или деревья. Команде git archive можно передавать дополнительные аргументы, чтобы изменить выходные данные архивации.

Примеры экспорта в Git


Ниже приведен самый простой пример с командой ~git archive~:

git archive --format=tar HEAD

При выполнении этой команды будет создан архив с учетом текущего указателя HEAD в репозитории. По умолчанию команда git archive передает выходные данные архивации во временный стандартный поток вывода. Этот поток необходимо записать в постоянный файл. Такой файл можно указать через параметр --output команды или путем перенаправления стандартного потока вывода в операционной системе.

git archive --output=./example_repo_archive.tar --format=tar HEAD
Логотип Git
Связанные материалы

Шпаргалка по Git

Логотип Bitbucket
СМ. РЕШЕНИЕ

Изучите Git с помощью Bitbucket Cloud

В приведенном выше примере создан новый архив, который затем сохранен в файле exmaple_repo_archive.tar. В обоих приведенных примерах выходные данные архивации не были сжаты. Это задано параметром --format=tar. Параметр format также принимает такие популярные сжатые форматы файлов, как zip и tar.gz. Передав параметру один из этих форматов, вы получите сжатый архив. Если опустить параметр format, формат данных будет логически выведен из указанного значения параметра --output.

git archive --output=./example_repo_archive.tar.gz --format=tar HEAD ./build

Чтобы заархивировать часть репозитория, укажите аргумент пути. В последнем примере к команде архивации добавлен аргумент пути ./build. Благодаря этому при выполнении команды в архив попадут только файлы, находящиеся в каталоге ./build.

Параметры


В предыдущих примерах рассмотрено несколько самых распространенных сценариев использования git archive. Следующие параметры, которые может принимать команда git archive, являются расширенными.

--prefix=<prefix>/

Параметр prefix добавляет путь перед именем каждого файла в архиве. Это полезно в том случае, если нужно извлечь содержимое архива в уникальном пространстве имен.

--remote=<repo>

В параметре remote указывают URL-адрес удаленного репозитория. При вызове команда git archive с этим параметром получит удаленный репозиторий и создаст архив из указанной в нем ссылки, если она доступна.

Настройка


Существует несколько глобальных значений конфигурации Git, которые позволяют управлять командой ~git archive~. Их можно задать с помощью утилиты git config.

tar.umask

Параметр конфигурации unmask используют, чтобы установить ограничение битов прав доступа Unix для выходного архивного файла.

tar.<format>.command

Этот параметр конфигурации позволяет указать пользовательскую команду оболочки, через которую будет передан вывод команды git archive. Того же результата можно достичь, опустив параметр --output и направив стандартный поток вывода ~git archive~ в пользовательский инструмент. Это позволяет выполнить дальнейшую обработку исправленного пользовательского архива.

tar.<format>.remote

Если включить эту переменную, удаленные клиенты смогут получать архивы указанного типа format.

Сводная информация о git archive

Команда git archive является полезной утилитой для создания распространяемых пакетов с репозиториями Git. Эта команда может выполняться для конкретных ссылок в репозитории и упаковывать только их содержимое. В git archive поддерживается несколько форматов вывода, включая сжатые файлы.


Поделитесь этой статьей
Следующая тема

Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Люди сотрудничают друг с другом, используя стену со множеством инструментов

Блог Bitbucket

Рисунок: DevOps

Образовательные программы DevOps

Демонстрация функций в демо-зале с участием экспертов Atlassian

Как инструмент Bitbucket Cloud работает с Atlassian Open DevOps

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up