Git Archive: Como exportar um projeto git
Às vezes, pode ser útil criar um arquivo compactado do Repositório do Git. Um arquivo compactado combina vários arquivos em um único arquivo. Um arquivo compactado pode então ser extraído para reproduzir os arquivos individuais. O Git é poderoso para preservar o histórico e a colaboração em equipe; no entanto, os arquivos compactados removem a sobrecarga dos metadados do Git e podem ser mais simples de distribuir para outros usuários ou preservar em armazenamento frio de longo prazo.
O que o git archive faz?
O comando git archive
é um utilitário de linha de comando do Git que vai criar arquivos a partir de Refs do Git especificadas, como confirmações, ramificações ou árvores. O git archive
aceita argumentos adicionais que vai alterar a saída do arquivo.
Exemplos de exportação Git
Temos o exemplo mais básico do ~git archive~
a seguir
git archive --format=tar HEAD
Esse comando, quando executado, vai criar um arquivo a partir da referência HEAD
atual do repositório. Por padrão, o git archive
vai transmitir a saída do arquivo para o fluxo stdout efêmero. Você vai precisar capturar esse fluxo de saída em um arquivo permanente. Você pode especificar um arquivo permanente usando a opção de saída git archives
ou usando o redirecionamento stdout do sistema operacional.
git archive --output=./example_repo_archive.tar --format=tar HEAD
Material relacionado
Folha de consulta do Git
VER SOLUÇÃO
Aprenda a usar o Git com o Bitbucket Cloud
O exemplo a seguir vai criar um novo arquivo e o vai armazenar no arquivo exmaple_repo_archive.tar
. Os exemplos anteriores criaram uma saída de arquivo não compactada. Essa ação é indicada pela opção --format=tar
. A opção de formato também aceita formatos de arquivos compactados populares zip
e tar.gz
. Passar uma dessas opções de formato vai produzir um arquivo compactado. Se um valor de formato não for passado, ele vai ser inferido a partir de qualquer opção --output
passada.
git archive --output=./example_repo_archive.tar.gz --format=tar HEAD ./build
O arquivo parcial do repositório pode ser criado passando o argumento path. Este exemplo adiciona o argumento path ./build
para o comando archive. Esse comando vai produzir um arquivo contendo somente arquivos armazenados no ./build
diretório
Opções
Os exemplos anteriores demonstraram alguns dos casos de uso de git-archive
usados com mais frequência. A seguir estão as opções estendidas que podem ser passadas para o git-archive
.
--prefix=<prefix>/
As opções de prefixo precedem um caminho para cada arquivo em um arquivo. Essa ação pode ser útil para garantir que o conteúdo do arquivo seja extraído em um namespace exclusivo.
--remote=<repo>
A opção remota espera uma URL de repositório remoto. Quando invocado com a opção remote, o git-archive
vai buscar o repositório remoto e vai criar um archive a partir da referência especificada, se estiver disponível no remoto.
Configuração
Existem alguns valores globais de configuração do Git que o ~git archive~ vai respeitar. Esses valores podem ser definidos usando o utilitário git config.
tar.umask
A opção de configuração de desmascaramento é usada para especificar a restrição de bits de permissão de nível Unix no arquivo de arquivamento de saída.
tar.<format>.command
Essa opção de configuração permite a especificação de um comando shell personalizado pelo qual a saída do git-archive
vai ser executada. A ação é semelhante a omitir a opção --output
e canalizar o fluxo stdout do ~git archive~ para uma ferramenta personalizada. Essa ação permite o pós-processamento de arquivamento personalizado fixo.
tar.<format>.remote
Se ativado, esse comando permite que os clientes remotos busquem archives do tipo format
.
Resumo do arquivo Git
O arquivo Git é um utilitário útil para criar pacotes distribuíveis de repositórios git. O arquivo Git pode segmentar refs específicas de um repositório e apenas empacotar o conteúdo dessa referência. O arquivo Git tem vários formatos de saída que podem utilizar compactação adicional.
Compartilhar este artigo
Próximo tópico
Leitura recomendada
Marque esses recursos para aprender sobre os tipos de equipes de DevOps ou para obter atualizações contínuas sobre DevOps na Atlassian.