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
Escolhendo a opção certa
archive versus bundle
Arquivos ou histórico?
| Comando | Contém | Usar para |
|---|---|---|
git archive | Os arquivos de um commit | Downloads, deploys |
git bundle | Commits e branches | Mover um repositório offline |
Exemplos
Zipar uma versão
git archive -o shop-1.0.zip v1.0Os arquivos de v1.0 num zip.
Tar com uma pasta
git archive --prefix=shop/ -o shop.tar.gz HEADTudo 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.0Exportá-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.