Créer une archive des différences d'un Git

Oh là là, vous n'imaginez pas le travail que ça demande de fournir les dernières mises à jour d'un projet versionné via Git, sous forme d'un tarball…

Une telle lamentation venant d'un amateur pas très éclairé n'aurait rien de surprenant mais elle est fréquemment débitée par de prétendus professionnel⋅le⋅s. On comprend que la “profession” est peuplée d'incultes en informatique qui ne font plus la différence entre “pisser de ligne de code” et faire du développement logiciel.

Las, extraire un tarball prend à peu près 20 secondes1) (3s, s'il s'agit d'une tache répétitive) :

git archive --output=mytarball.tgz HEAD $(git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT <my-id>)

À adapter au contexte, ce qui demande juste de savoir que qu'on appelle le contexte, c'est-à-dire avoir une connaissance minimale des outils qu'on utilise, des notions qu'ils mobilisent et ne pas taper des commandes comme s'il s'agissait d'incantations :

1)
Bien sûr, il existe d'autres manières d'arriver au même résultat.