Lâusage de patch dans git est historique, aujourdâhui câest une fonctionnalitĂ© qui est peu utilisĂ©e.
Cette fonctionnalitĂ© peut sâavĂ©rer utile dans un cas de dĂ©veloppement oĂč le serveur git nâest pas accessible (travail Ă distance ou lors dâune panne temporaire du serveur).
Elle peut Ă©galement rendre plus clair certains bricolages dâun dĂ©pĂŽt, dans le cas de la rĂ©Ă©criture massive de lâhistoire dâun dĂ©pĂŽt.
Lâusage des patchs se fait dans un mode dĂ©gradĂ© de git ou dans le cadre de procĂ©dures spĂ©cifiques : câest en particulier le mode normal pour coopĂ©rer sur certains logiciels libres.
Un patch : une rustine, un correctif
Créer un patch Git pour un commit spécifique
Dans certains cas, vous nâĂȘtes pas intĂ©ressĂ© par toutes les diffĂ©rences existantes entre deux branches. Vous ĂȘtes intĂ©ressĂ© par un ou deux commits maximum. Vous pouvez Ă©videmment choisir vos commits Git Ă lâaide de git cherry-pick
, mais il est possible dâexĂ©cuter la mĂȘme action en utilisant des patchs Git.
Afin de créer un fichier patch Git pour un commit spécifique, utilisez la commande git format-patch
avec lâoption -1
et le SHA du commit. Exemple :
git format-patch -1 2cbaaa692f466f85d4e813cd3c970a34c9d2fb99
Pour mettre le fichier patch dans un répertoire particulier, vous pouvez utiliser :
git format-patch -1 <SHA> -o <directory>
Cela générera un fichier avec un nom du style 0001-COMMIT_MESSAGE.patch
contenant la description des changements. Ce fichier est au format texte, et le contenu est assez intuitif.
Appliquer le patch
Lâapplication du patch est extrĂȘmement simple, il suffit de se positionner dans le rĂ©pertoire du projet, sur la branche souhaiter et dâutiliser la commande suivante :
git am <patch_file>
Pour aller plus loin
኿