git archive
git
Uso
git archive --format=tar.gz -o <file> <tree-ish>Exporta los archivos de un commit como tar o zip; deja fuera .git y los archivos sin rastrear, así el paquete de release sale más limpio que comprimir la carpeta.
Opciones habituales
| Opción | 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 |
Ejemplos
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
Lo confuso es que deshacer tiene varias formas: mover a dónde apunta una rama no es lo mismo que añadir un commit que la revierte.
Cómo leerlo
- Los corchetes [ ] marcan una parte que puedes omitir.
- Los puntos suspensivos … indican que puedes poner varios.
- Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.
Preguntas
Q. ¿Qué hace git archive?
Exporta los archivos de un commit como tar o zip; deja fuera .git y los archivos sin rastrear, así el paquete de release sale más limpio que comprimir la carpeta.
Q. ¿Cómo se escribe?
git archive --format=tar.gz -o <file> <tree-ish> — los corchetes marcan lo que puedes omitir.
Q. ¿Cuántas opciones vale la pena saber?
Aquí van 6; la lista completa está en man git. Este comando está en git.
Comandos relacionados
página man: man git-archive