346 votes

Comment appliquer un patch généré avec git format-patch ?

J'ai deux dépôts git locaux, qui pointent tous les deux vers le fichier même dépôt à distance.

Dans un dépôt git, si je fais git format-patch 1 Comment puis-je appliquer ce patch à l'autre dépôt ?

524voto

VonC Points 414372

Remarque : vous pouvez d'abord avoir un aperçu de ce que fera votre patch :

D'abord les statistiques :

git apply --stat a_file.patch

Puis un essai à blanc pour détecter les erreurs :

git apply --check a_file.patch

Enfin, vous pouvez utiliser git am pour appliquer votre patch comme un commit. Cela vous permet également de se déconnecter un patch appliqué.
Cela peut être utile pour une référence ultérieure.

git am --signoff < a_file.patch 

Voir un exemple dans cet article :

Dans votre journal git, vous constaterez que les messages de validation contiennent une balise "Signed-off-by". Cette balise sera lue par Github et d'autres pour fournir des informations utiles sur la façon dont le commit s'est retrouvé dans le code.

Example

279voto

Jeff Dallien Points 1171
git apply name-of-file.patch

60voto

Dominic Cooney Points 2876

Ou, si vous êtes de la vieille école :

cd /path/to/other/repository
patch -p1 < 0001-whatever.patch

42voto

Eugen Konkov Points 5218

Tout d'abord, vous devez prendre note de différence entre git am y git apply

Lorsque vous utilisez git am vous voulez généralement appliquer de nombreux correctifs. Il faut donc utiliser :

git am *.patch

ou juste :

git am

Git trouvera les correctifs automatiquement et les appliquera dans l'ordre ;-)

UPD
Ici vous pouvez trouver comment générer de tels correctifs

31voto

Jakub Narębski Points 87537

Si vous voulez l'appliquer en tant qu'engagement utiliser git am .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X