J'ai deux référentiels locaux git pointant tous deux vers le même référentiel distant.
Dans un référentiel git, si je fais git format-patch 1
, comment puis-je appliquer ce correctif à l'autre référentiel?
Remarque: vous pouvez d’abord visualiser ce que votre patch fera:
D'abord les stats:
_git apply --stat a_file.patch
_
Ensuite, un essai pour détecter les erreurs:
_git apply --check a_file.patch
_
Enfin, vous pouvez utiliser git am
pour appliquer votre patch en tant que commit: cela vous permet de signer un patch appliqué.
Ceci peut être utile pour 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 la validation s’est retrouvée dans le code.
git apply name-of-file.patch
Ou, si vous vous en prenez à la vieille école:
cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
Si vous voulez l'appliquer en tant que commit , utilisez git am .
Vous devez d’abord prendre note de différence entre git am
et git apply
Lorsque vous utilisez git am
, vous souhaitez généralement appliquer de nombreux correctifs. Ainsi devrait utiliser:
git am *.patch
ou juste:
git am
Git trouvera automatiquement les correctifs et les appliquera dans l’ordre ;-)
UPD
Ici vous pouvez trouver comment générer de tels correctifs
Si vous utilisez un JetBrains IDE (comme IntelliJ IDEA, Android Studio, PyCharm), vous pouvez faire glisser le fichier de correctif et le déposer à l'intérieur de l'EDI. Une boîte de dialogue s'affiche. montrant le contenu du patch. Tout ce que vous avez à faire maintenant est de cliquer sur "Appliquer le correctif" et un commit sera créé.