git archive

Administração

Exporta os arquivos de um commit como arquivo zip ou tar


O comando 'git archive' grava os arquivos de um commit, tag ou branch num arquivo zip ou tar — sem o histórico e sem a pasta .git. É a forma padrão de publicar uma versão para download. O formato segue a extensão do arquivo de saída, e --prefix coloca todos os arquivos dentro de uma pasta.

Sinopse

git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [-o <file>] <tree-ish> [<path>...]
[ ] opcional| ou<arg> valor a substituir... repetível--flag opção

Opções

Clique em uma opção para expandir

Iniciante (3)

Grava o arquivo neste caminho; o formato vem da extensão.

RecomendadoGravar o pacote num arquivo

Exemplo

git archive -o shop.zip HEAD

Coloca cada arquivo dentro desta pasta no arquivo (termine com /).

RecomendadoDescompactar numa pasta única e arrumada

Exemplo

git archive --prefix=shop-1.0/ -o shop.tar.gz v1.0

Lista os formatos disponíveis.

Quando necessárioVer os formatos suportados

Exemplo

git archive --list

Escolhendo a opção certa

archive versus bundle

Arquivos ou histórico?

ComandoContémUsar para
git archiveOs arquivos de um commitDownloads, deploys
git bundleCommits e branchesMover um repositório offline

Exemplos

Zipar uma versão

git archive -o shop-1.0.zip v1.0

Os arquivos de v1.0 num zip.


Tar com uma pasta

git archive --prefix=shop/ -o shop.tar.gz HEAD

Tudo dentro de shop/.


Só uma pasta

git archive -o docs.zip HEAD docs/

Só a pasta docs.

Exemplos de fluxos de trabalho

1
git tag -a v1.0 -m "Release"

Marcá-la

2
git archive --prefix=shop-1.0/ -o shop-1.0.zip v1.0

Exportá-la

Solução de problemas

Faltam alguns arquivos

Causa: Arquivos não rastreados ou ignorados nunca entram no arquivo

Faça commit deles, ou confira as regras export-ignore do .gitattributes

Dicas e armadilhas

Boas práticas

  • ✓Arquive tags, não branches, para o download corresponder à versão.

Erros comuns

  • ✗Esperar histórico no arquivo — use git bundle para mover histórico.
  • ✗Esquecer o -o e encher o terminal de dados binários.

Perguntas frequentes

A:

Sim: marque-os como export-ignore no .gitattributes.