Comment mon client peut-il appliquer le correctif créé par git diff
sans que git ne soit installé? J'ai essayé d'utiliser la commande patch
mais elle demande toujours le nom du fichier à patcher.
git diff > patchfile
et
patch -p1 < patchfile
fonctionne, mais comme beaucoup de personnes l’ont remarqué dans les commentaires et autres réponses, le correctif ne comprend pas les ajouts, les suppressions et les renommés. Il n'y a pas d'autre option que git apply patchfile
si vous avez besoin de gérer le fichier ajoute, supprime et renomme.
EDIT décembre 2015
Les dernières versions de la commande patch
(2.7, publiée en septembre 2012) prennent en charge la plupart des fonctionnalités du format "diff - git", notamment les renomations et les copies, les modifications d’autorisation et les différences de liens symboliques (mais pas encore les diffs binaires) ( annonce de sortie ).
Donc, à condition d'utiliser la version actuelle/la dernière version de patch
, il n'est pas nécessaire d'utiliser git
pour pouvoir appliquer ses diff à un patch.
essaye ça:
patch -p1 < patchfile
Utilisation
git apply patchfile
si possible.
patch -p1 < patchfile
a des effets secondaires potentiels.
git apply
gère également les ajouts, suppressions et renommements de fichiers s'ils sont décrits au format git diff
, ce que patch
ne fera pas. Enfin, git apply
est un modèle "tout appliquer ou tout annuler" où tout est appliqué ou rien ne l'est, alors que patch peut partiellement appliquer des fichiers de correctif, laissant ainsi votre répertoire de travail dans un état étrange.
J'utilise
patch -p1 --merge < patchfile
De cette façon, les conflits peuvent être résolus comme d'habitude.