J'ai 2 référentiels locaux git pointant tous les deux vers le même référentiel distant.
Dans un référentiel git, si je le fais git format-patch 1
, comment puis-je appliquer ce correctif à l'autre référentiel?
J'ai 2 référentiels locaux git pointant tous les deux vers le même référentiel distant.
Dans un référentiel git, si je le fais git format-patch 1
, comment puis-je appliquer ce correctif à l'autre référentiel?
Réponses:
Remarque: Vous pouvez d'abord prévisualiser ce que fera votre patch:
D'abord les statistiques:
git apply --stat a_file.patch
Ensuite, un essai à sec 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: il vous permet de vous déconnecter d'un patch appliqué.
Cela 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 terminée dans le code.
git am < somepatch.patch
renvoie "fatal: nom ident vide (pour <>) non autorisé". Quelqu'un peut-il m'expliquer pourquoi?
Author
têtes dans le patch, et / ou vous ne l'avez pas fait git config user.{name,email}
.
git apply --check
dit patch does not apply
, et git apply -3
dit repository lacks the necessary blob to fall back on 3-way merge.
In git, rebaser les commits est un jeu d'enfant; mais comment les gens rebasent-ils leurs correctifs en plus du code mis à jour?
git apply name-of-file.patch
Ou, si vous le faites à l'ancienne:
cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
Vous devez d'abord prendre note de la différence entre git am
etgit apply
Lorsque vous utilisez, git am
vous souhaitez généralement appliquer de nombreux correctifs. Il faut donc 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
git apply
.. et en --reverse
:-) 👍
Si vous souhaitez l'appliquer en tant que commit , utilisez git am .
Si vous utilisez un IDE JetBrains (comme IntelliJ IDEA, Android Studio, PyCharm), vous pouvez faire glisser le fichier de correctif et le déposer dans l'EDI, et une boîte de dialogue apparaîtra, montrant le contenu du correctif. Il ne vous reste plus qu'à cliquer sur "Appliquer le patch", et un commit sera créé.
Vous pouvez utiliser le cmd mentionné ci-dessous
git apply fileName.patch