git archive
git
Uso
git archive --format=tar.gz -o <file> <tree-ish>Exporta os arquivos de um commit como tar ou zip; deixa de fora o .git e os arquivos sem rastreio, o que rende um pacote de release mais limpo que zipar a pasta.
Opções comuns
| Opção | Significado |
|---|---|
| --format=<fmt> | tar, zip or tar.gz |
| -o <file> | write to a file; the format is guessed from the name |
| --prefix=<dir>/ | put everything under one folder inside the archive |
| --add-file=<file> | include an untracked file as well |
| --remote=<repo> | let the server build it |
| -l | list the formats this build supports |
Exemplos
git archive --format=tar.gz -o app-1.2.0.tar.gz v1.2.0a release tarball of exactly that tag
git archive --prefix=app/ -o app.zip HEADa zip whose contents sit inside app/
git archive -o src.zip HEAD -- srconly the src directory
O confuso é que desfazer tem várias formas: mover para onde um branch aponta não é o mesmo que criar um commit que reverte.
Como ler
- Os colchetes [ ] marcam uma parte que você pode omitir.
- As reticências … indicam que você pode listar vários.
- As opções diferenciam maiúsculas: em alguns comandos -r e -R fazem coisas diferentes.
Perguntas
Q. O que git archive faz?
Exporta os arquivos de um commit como tar ou zip; deixa de fora o .git e os arquivos sem rastreio, o que rende um pacote de release mais limpo que zipar a pasta.
Q. Como se digita?
git archive --format=tar.gz -o <file> <tree-ish> — os colchetes marcam o que você pode omitir.
Q. Quantas opções vale a pena saber?
Aqui estão 6; a lista completa está em man git. Este comando fica em git.
Comandos relacionados
página man: man git-archive