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.43.0 11/20/23
- 2.40.1 → 2.42.1 no changes
- 2.40.0 03/12/23
- 2.38.1 → 2.39.3 no changes
- 2.38.0 10/02/22
- 2.37.1 → 2.37.7 no changes
- 2.37.0 06/27/22
- 2.34.1 → 2.36.6 no changes
- 2.34.0 11/15/21
- 2.29.1 → 2.33.8 no changes
- 2.29.0 10/19/20
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.
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
.
GIT
Parte do conjunto git[1]