90 votes

Comment fusionner tous les fichiers manuellement dans Git ?

Je veux fusionner tous les fichiers manuellement avec meld ou tout autre outil de diff, comment puis-je faire cela avec Git ?
Quand je cours git mergetool il dit no files need merging . Je suppose donc que je ne peux le faire que si j'ai des conflits.

0 votes

Veuillez nous fournir un contexte de ce que que vous voulez fusionner et pourquoi vous ne voulez pas que cela soit fait automatiquement.

3 votes

Je veux fusionner des fichiers texte :) J'ai l'habitude de la fusion manuelle de mercurial et j'aime voir 3 fichiers simultanément, si quelque chose ne va pas, je peux toujours les modifier moi-même.

0 votes

Vous voulez fusionner différents fichiers texte de différentes révisions d'un même fichier texte ? Comment ces fichiers sont-ils liés à git ?

115voto

skywinder Points 1035

Il existe un moyen beaucoup plus simple :

git merge --no-commit merge_branch

Comme le dit l'homme :

Avec --no-commit effectuer la fusion mais prétendre que la fusion a échoué et faire pas d'autocommit, pour donner à l'utilisateur une chance d'inspecter et d'ajuster davantage le résultat de la fusion avant de l'engagement.

7 votes

Merci. Existe-t-il un moyen d'utiliser mergetool/meld pour examiner et fusionner les modifications au coup par coup avec une interface tripartite agréable ?

0 votes

Et bien sûr, utilisez git mergetool s'il y a des conflits.

76voto

NSjonas Points 1457

J’ai eu un scénario où:

vient de provoquer une avance rapide.

Si cela se produit, vous pouvez utiliser:

et ensuite, vous serez en mesure de revoir vos modifications

1 votes

Est-il possible de le tirer de la même manière ? Je dois vérifier TOUS les conflits manuellement si l'avance rapide n'est pas possible.

1 votes

@Maxim non mais depuis pull est juste la combinaison de fetch y merge faire le premier appel git fetch merge_branch alors le dernier fait merge

2 votes

Je reçois Automatic merge went well; stopped before committing as requested en cours d'exécution. Lorsque j'essaie d'exécuter git mergetool il dit No files need merging .

22voto

True Points 341

Une question similaire est Comment empêcher une fusion automatique en utilisant git?

FractalSpace a donné une réponse qui, je pense, est utile:

L’idée est d’utiliser des difftools au lieu d’outils de fusion automatique pour choisir manuellement ce dont vous avez besoin et créer de nouveaux fichiers.

0 votes

J'ai ajouté une réponse comparant cette réponse à celle de la git merge pour aider à clarifier les choses pour toute autre personne qui tomberait sur cette page.

0 votes

L'histoire pourrait se perdre ici. De plus, cela n'apparaît pas comme une branche fusionnée. Pour git, cela pourrait simplement ressembler à un énorme commit sorti du néant.

8voto

VonC Points 414372

Notez que si vous insistez pour fusionner manuellement (peut-être pour une certaine classe de fichiers), vous pouvez toujours définir un pilote de fusion.
Vous avez un exemple concret dans "Git - comment forcer le conflit de fusion et la fusion manuelle sur le fichier sélectionné« .

De cette façon, votre script de pilote de fusion peut appeler n’importe quel outil de fusion de votre choix.

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