J'ai un fichier .diff créé par un collègue et j'aimerais appliquer les modifications répertoriées dans ce fichier diff à ma branche locale du même référentiel. Je n'ai pas accès au PC ou à la branche de ce travailleur qui a été utilisé pour générer ce fichier diff.
Évidemment, je pouvais aller ligne par ligne et tout retaper, mais je préfère ne pas soumettre le système à une erreur humaine. Quelle est la façon la plus simple de faire cela?
Copiez le fichier diff à la racine de votre référentiel, puis faites:
git apply yourcoworkers.diff
Plus d'informations sur la commande apply
sont disponibles sur sa page de manuel .
Soit dit en passant: Un meilleur moyen d'échanger des commits entiers par fichier est la combinaison des commandes git format-patch
sur l'expéditeur, puis git am
sur le destinataire, car il transfère également les informations de l'auteur et le message de validation.
Si l'application du correctif échoue et si les validations générées par le diff sont réellement dans votre référentiel, vous pouvez utiliser l'option -3
de apply
qui tente de fusionner les modifications.
Cela fonctionne aussi avec les pipes Unix comme suit:
git diff d892531 815a3b5 | git apply