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.47.1 no changes
- 2.46.0 07/29/24
- 2.43.1 → 2.45.2 no changes
- 2.43.0 11/20/23
- 2.40.1 → 2.42.3 no changes
- 2.40.0 03/12/23
- 2.38.1 → 2.39.5 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
- 2.1.4 → 2.28.1 no changes
- 2.0.5 12/17/14
RESUMO
git archive [--format=<fmt>] [--list] [--prefix=<prefixo>/] [<extra>] [-o <arquivo> | --output=<arquivo>] [--worktree-attributes] [--remote=<repo> [--exec=<git-upload-archive>]] <árvore> [<caminho>…]
DESCRIÇÃO
Cria um arquivo no formato especificado que contém a estrutura da árvore para a árvore mencionada e o grava na saída predefinida. Caso o <prefixo> tenha sido especificado, ele será anexado aos nomes dos arquivos no arquivo.
O comando git archive se comporta de forma diferente quando recebe um ID da árvore em vez de um ID do commit ou a ID da etiqueta. Quando um ID da árvore é fornecida, a hora atual é usada como a hora de alteração de cada arquivo no arquivo. Por outro lado, quando um ID do commit ou um ID da etiqueta é fornecida, o tempo do commit registrado no objeto do commit referenciado será usado. Além disso, se o formato tar for usado, a ID é armazenada num cabeçalho "pax global" estendido; ele pode ser extraído usando o comando git get-tar-commit-id. Em arquivos ZIP, ele é armazenado como um comentário do arquivo.
OPÇÕES
- --format=<fmt>
-
Formato do arquivo resultante. Os possíveis valores são
tar
,zip
,tar.gz
,tgz
e qualquer formato definido usando a opção de configuraçãotar.<formato>.command
. Caso a opção--format
não seja usada e o arquivo que será gerado seja definido, será usado o formato a partir do nome do arquivo, se possível (por exemplo, gravar emfoo.zip
, isso faz com que o arquivo gerado esteja no formatozip
). Caso contrário, o formato padrão serátar
. - -l
- --list
-
Exiba todos os formatos disponíveis.
- -v
- --verbose
-
Relate o progresso para o stderr.
- --prefix=<prefixo>/
-
Prepend <prefix>/ to paths in the archive. Can be repeated; its rightmost value is used for all tracked files. See below which value gets used by
--add-file
. - -o <arquivo>
- --output=<arquivo>
-
Escreva o arquivo para o
<arquivo>
em vez do stdout. - --add-file=<arquivo>
-
Adiciona um arquivo não rastreado ao arquivo. Pode ser repetido para adicionar diversos arquivos. O caminho do arquivo no arquivo é criado concatenando o valor da última opção
--prefix
(se houver) antes dessa opção--add-file
e o nome base do <arquivo>. - --add-virtual-file=<caminho>:<conteúdo>
-
Add the specified contents to the archive. Can be repeated to add multiple files.
O argumento
<caminho>
pode começar e terminar com um caractere literal de aspas duplas; o nome do arquivo contido é interpretado como um texto estilo C, ou seja, a barra invertida é interpretada como caractere de escape. O caminho deve ser citado tenha dois pontos, para evitar que os dois pontos sejam mal interpretados como o separador entre o caminho e o conteúdo, ou, caso o caminho comece ou termine com um caractere de aspas duplas.O modo do arquivo é limitado a um arquivo regular, a opção pode estar sujeita aos limites da linha de comando que dependem da plataforma. Para casos não triviais, grave um arquivo não rastreado e use
--add-file
.Note that unlike
--add-file
the path created in the archive is not affected by the--prefix
option, as a full<path>
can be given as the value of the option. - --worktree-attributes
-
Procure pelos atributos nos arquivos
.gitattributes
da árvore de trabalho (consulte ATRIBUTOS). - --mtime=<hora>
-
Define o tempo da alteração nas entradas do arquivo. Sem essa opção, a hora de quem fez o commit é usada se
<tree-ish>
for um commit ou uma etiqueta, ou então a hora atual se for uma árvore. - <extra>
-
Pode ser qualquer opção que o backend do arquivador compreenda. 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 na
<árvore>
. 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 de caminho, todos os arquivos e subdiretórios do diretório de trabalho atual são incluídos no arquivo. Se um ou mais caminhos forem especificados, somente esses serão incluídos.
CONFIGURAÇÃO
- tar.umask
-
Esta variável pode ser usada para restringir os bits de permissão das entradas do arquivo tar. A predefinição é 0002, desativa o bit de gravação mundial. O valor especial "user" indica que o "umask" do usuário de arquivamento será usado em seu lugar. Para mais detalhes consulte umask(2). Se a opção
--remote
for usada, terá efeito apenas a configuração do repositório remoto. - 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).Os formatos
tar.gz
etgz
são definidos automaticamente e por padrão usam o comando mágicogit archive gzip
que invoca uma implementação interna para gerar um arquivo gzip. - 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
etgz
.
ATRIBUTOS
- export-ignore
-
Os arquivos e os diretórios com o atributo export-ignore não serão adicionados aos arquivos comprimidos. Para mais detalhes consulte gitattributes[5].
- export-subst
-
Se o atributo export-subst estiver definido para um arquivo, o Git expandirá vários espaços reservados ao adicionar esse arquivo num arquivo. Para mais detalhes consulte gitattributes[5].
Observe que os atributos são, por padrão, obtidos dos arquivos .gitattributes
na árvore que está sendo arquivada. Se quiser ajustar a forma como a saída é gerada após o fato (você fez o commit sem adicionar um export-ignore apropriado em seu .gitattributes
por exemplo), ajuste o arquivo .gitattributes
verificado conforme necessário e use a opção --worktree-attributes
. Como alternativa, você pode manter os atributos necessários que devem ser aplicados durante o arquivamento de qualquer árvore em 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 archive -o latest.tar --prefix=build/ --add-file=configure --prefix= HEAD
-
Cria um arquivo tar que contém o conteúdo do último commit no ramo atual sem o prefixo e o arquivo não rastreado configure com o prefixo build/.
-
git config tar.tar.xz.command "xz -c"
-
Configure um formato "tar.xz" para criar arquivos tar comprimidos com LZMA. Você pode usá-lo especificando a opção
--format=tar.xz
ou criando um arquivo final com-o foo.tar.xz
.
GIT
Parte do conjunto git[1]