Générer un fichier patch à partir d'un commit Git

26 Octobre 2016

Le titre n’est pas très explicit, je vais tout de suite préciser l’idée que j’ai derrière la tête. Simplement être capable de me souvenir qu’il existe une commande Git pour générer un fichier patch pour un commit précis et ne plus faire un git diff puis modifier le résultat pour avoir un fichier de patch valide…

Bref, depuis la version 1.8.0.3 de Git (c’était il y a fort fort longtemps), il existe la commande format-patch, qui permet de générer rapidement un fichier patch. Imaginons que l’on veuille générer un patch pour le commit qui a pour hash trololo et pour message de commit «Mon commit trololo» :

$> git format-patch -1 trololo

Ce qui est pratique avec cette commande, c’est que le fichier est tout de suite compatible et que le fichier généré sera nommé avec un id et le commit message, ainsi vous devriez avoir dans votre répertoire courant un fichier nommé 0001-mon-commit-trololo.patch. Cette nomenclature est sympa si l’on doit jouer avec beaucoup de fichier patch.

Pour info, l’argument -1 va faire en sorte de ne générer qu’un seul fichier, mais si vous voulez avoir autant de ficheir patch qu’il y a de commit entre votre master le commit que vous ciblez il suffit d’enlever l’argument et vous obtiendrez un fichier patch par commit.

Ensuite, pour appliquer le patch il existe la commande git apply :

$> git apply 0001-mon-commit-trololo.patch

Simple, non ?

Bien sûr il existe d’innombrable paramètres pour les commandes format et apply, mais ils dépassent l’utilisation basique que j’ai des patchs, mais je vous conseille d’aller faire un tour sur la doc, vous découvrirez peut être comme moi, des trucs sympas…

Charger les commentaires…