El comando git archive permite crear un archivo en zip o en tar de un determinado commit. Pero a veces es necesario distribuir un update, como si fuese un patch pero que contenga todos los archivos que han cambiado. Para hacerlo se puede usar el siguiente comando:
git archive -o update.zip HEAD $(git diff --name-only HEAD^)
Básicamente consiste en que git archive permite que se le especifiquen la lista de ficheros a incluir, y por otra parte, git diff tiene el parámetro –name-only que permite listar los ficheros que han cambiado en un commit.