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
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).
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.
TortoiseGit a une fonctionnalité de fusion qui peut ouvrir des fichiers de correctifs.
Il y a une photo de celle-ci ici .
Mon approche est: