Git

NOME

git-archive - Cria um arquivo dos arquivos vindos de uma determinada árvore

RESUMO

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

DESCRIÇÃO

Cria um arquivo no formato informado que contenha uma estrutura de determinada árvore e grava na saída padrão. Caso o <prefixo> seja utilizado, ele será anexado aos nomes dos arquivos no arquivo.

O comando git archive se comporta de maneira diferente quando recebe um ID da árvore e quando recebe um ID do commit ou o ID de uma tag. No primeiro caso, a hora atual é utilizada como a hora da alteração de cada arquivo no arquivo. Neste último caso, a hora que foi registrada no objeto do commit será utilizado. Além disso, o ID do commit é armazenado em um cabeçalho global estendido pax caso o formato tar seja utilizado; pode ser extraído utilizando o comando git get-tar-commit-id. Nos arquivos ZIP, ele é armazenado como um comentário do arquivo.

OPÇÕES

--format=<fmt>

Formato do arquivo resultante: tar ou zip. Caso esta opção não seja utilizada e o arquivo na saída for definido, o tipo do formato será deduzido através do nome do arquivo, quando for possível (ao gravar como "foo.zip" faz com que a saída esteja no formato zip por exemplo). Caso contrário, o formato gerado será tar.

-l
--list

Exiba todos os formatos disponíveis.

-v
--verbose

Relate o progresso para o stderr.

--prefix=<prefixo>/

Anexe o <prefixo>/ em cada nome do arquivo no arquivo.

-o <arquivo>
--output=<arquivo>

Escreva o arquivo para o <arquivo> em vez do stdout.

--worktree-attributes

Procure pelos atributos nos arquivos .gitattributes da árvore de trabalho (consulte [ATRIBUTOS]).

<extra>

Pode ser qualquer opção que seja compatível com a estrutura do arquivador. Consulte a próxima seção.

--remote=<repo>

Em vez de criar um arquivo tar do repositório local, recupere um arquivo tar de um repositório remoto. Observe que o repositório remoto pode colocar restrições sobre quais as expressões sha1 podem ser permitidas no <tree-ish>. Para mais detalhes consulte git-upload-archive[1].

--exec=<git-upload-archive>

Utilizado com --remote para informar o caminho para o git-upload-archive no lado remoto.

<tree-ish>

A árvore ou o commit que será utilizado para produzir um arquivo.

<caminho>

Sem um parâmetro opcional do caminho, todos os arquivos e os subdiretórios do diretório de trabalho atual serão incluídos no arquivo. Caso um ou mais caminhos sejam informados, apenas estes, serão incluídos.

OPÇÕES EXTRAS DA ESTRUTURA

zip

-0

Armazene os arquivos em vez de extraí-los.

-9

Níveis de compressão mais altos e baixos. Você pode utilizar qualquer número entre 1 e 9 para ajustar a velocidade e a taxa de compressão.

CONFIGURAÇÃO

tar.umask

Essa variável pode ser utilizada para restringir os bits de permissão das entradas do arquivo tar. A predefinição é 0002, que desliga o bit de gravação global. O valor especial "user" (usuário) indica que o umask do arquivo do usuário será utilizado. Para mais detalhes consulte umask(2). Caso --remote seja utilizado, somente a configuração do repositório remoto entrará em vigor.

tar.<formato>.comando

Esta variável define um comando shell por onde o tar será gerado pelo git archive através de um "pipe". O comando é executado utilizando o shell com o arquivo tar gerado na sua entrada padrão e deve produzir a saída final na sua saída padrão. Quaisquer opções do nível de compressão serão passadas ao comando ("-9" por exemplo). Um arquivo gerado com a mesma extensão que <formato>, este será utilizado caso nenhum outro seja informado.

Os formatos "tar.gz" e "tgz" são definidos automaticamente e predefinidos para gzip -cn. Você pode substituí-los com comandos personalizados.

tar.<formato>.remoto

Caso seja true, ative o <formato> para que seja utilizado por clientes remotos através do git-upload-archive[1]. A predefinição retorna para false nos formatos definidos pelo usuário, mas true para os formatos "tar.gz" e "tgz".

ATRIBUTOS

export-ignore

Arquivos e os diretórios com o atributo export-ignore não serão adicionados aos arquivos compactados. Para mais detalhes consulte gitattributes[5].

export-subst

Caso o atributo export-subst esteja definido para um arquivo, o Git expandirá os vários espaços reservados ao adicionar este arquivo em um arquivo. Para mais detalhes consulte gitattributes[5].

Observe que, por predefinição, os atributos são obtidos através dos arquivos .gitattributes na árvore que está sendo arquivada. Caso queira ajustar a maneira como a saída é gerada após o fato (você fez um commit sem adicionar um export-ignore adequado no seus .gitattributes por exemplo), ajuste o arquivo .gitattributes conforme seja necessário e utilize a opção --worktree-attributes. Como alternativa, você pode manter os atributos necessários que devem ser aplicados ao arquivar qualquer árvore no seu arquivo $GIT_DIR/info/attributes.

EXEMPLOS

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

Crie um arquivo tar com o conteúdo do commit mais recente no ramo atual e extraia-o no diretório /var/tmp/junk.

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

Crie um "tarball" comprimido para a versão v1.4.0.

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

O mesmo que acima porém lidando com o "tar.gz" embutido.

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

O mesmo que acima, porém o formato é deduzido do arquivo gerado.

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

Crie um tarball compactado para a versão v1.4.0, porém sem um cabeçalho pax global estendido.

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

Coloque tudo no diretório Documentation/ do cabeçalho atual no arquivo git-1.4.0-docs.zip, com o prefixo git-docs/.

git archive -o latest.zip HEAD

Crie um arquivo Zip com o conteúdo do commit mais recente na ramificação atual. Observe que o formato gerado é deduzido através da extensão do arquivo utilizado na saída.

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

Configure um formato "tar.xz" para criar arquivo tarfiles compactados com LZMA. Você pode utilizá-lo utilizando a opção --format=tar.xz ou criando um arquivo gerado com -o foo.tar.xz.

VEJA TAMBÉM

GIT

Parte do conjunto git[1]