Petit astuce pratique pour récupérer la différence de code entre deux états (branche, tag) sur git.
Je vous propose un exemple qui sera plus parlant.
Imaginons que vous avez créé un TAG « V1.0.0 » sur votre repositorie Git. Ensuite vous avez push de nouveaux commit. Vous souhaitez récupérer un zip avec uniquement la différence de code entre votre branche « develop » et votre TAG « V1.0.0 ».
git archive -o delta.zip develop $(git diff --name-only V1.0.0^)
Et voilà, vous avez un zip avec uniquement vos fichiers et surtout l’arborescence des fichiers qui va avec 🙂
Inconvénient de cette méthodes, les fichiers supprimé ne seront pas supprimé et la commande ci-dessus va planter.
Il faut donc ajouter un filtrer sur les fichiers. Exemple pour ne prendre en compte que les fichier Ajouter, Modifier, Renommer, Changer)
git archive -o delta.zip develop $(git diff --name-only --diff-filter=ACMRT V1.0.0^)