web-dev-qa-db-fra.com

Lorsque vous appliquez un correctif, y a-t-il un moyen de résoudre les conflits?

Je suis aux fenêtres.

Pour diverses raisons, nous avons plusieurs instances de git de différentes branches svn.

Souvent, je souhaite résoudre un problème dans le référentiel A, générer un correctif et l'appliquer au référentiel B. Cela fonctionne correctement, sauf en cas de conflit.

Lorsque je re-base je clique avec le bouton droit sur le dossier et utilise tortioseGit et sélectionne l’option de résolution. Cela amène un gui sympa pour me laisser travailler à travers mes conflits.

Est-il possible d'accomplir cela avec des morceaux de correctif rejetés?

Voici mon approche actuelle pour créer/appliquer les correctifs

git format-patch master --stdout > c:\\patch\\file.patch
git apply --reject --ignore-space-change --ignore-whitespace c:\\patch\\file.patch
110
Kenoyer130

Pour générer votre patch, procédez comme suit:

git format-patch --stdout first_commit^..last_commit > changes.patch

Maintenant, quand vous êtes prêt à appliquer les patchs:

git am -3 < changes.patch

le -3 fera une fusion à trois voies s'il y a des conflits. À ce stade, vous pouvez faire un git mergetool si vous voulez utiliser une interface graphique ou simplement fusionner les fichiers manuellement à l’aide de vim (le fichier standard <<<<<<, ||||||, >>>>>> résolution de conflit).

216
g19fanatic

Si vous rencontrez fréquemment le même ensemble de conflits lors de l’application de correctifs, de la refonte ou de la fusion de bases, vous pouvez utiliser la fonction git rerere (résolution réutilisée de l’enregistrement). Cela vous permet de prédéfinir comment les conflits doivent être résolus en fonction de la façon dont vous les avez résolus dans le passé. Voir http://git-scm.com/blog/2010/03/08/rerere.html pour plus d'informations sur son fonctionnement.

10
mplf

TortoiseGit a une fonctionnalité de fusion qui peut ouvrir des fichiers de correctifs.

Il y a une photo de celle-ci ici .

3
ams

Mon approche est:

  • Créer un "Integration" -Branch où les fichiers sont identiques
  • Appliquer le correctif à cette branche d'intégration
  • Fusionnez ou rebassez-le pour le maîtriser (je ne sais pas si rebase est utile ici, car je ne sais pas ce qui se passera lors de l'application de correctifs supplémentaires)
1
MichiBack