Refaire la fusion d'un seul fichier

112

Je suis au milieu d'une grande fusion, et j'ai l'habitude git mergetoolde résoudre tous les conflits, mais je ne me suis pas encore engagé, car je voulais d'abord m'assurer que la fusion était correcte.

Il s'avère que j'ai fait une erreur en résolvant les conflits dans un fichier, et je voudrais refaire la résolution des conflits avec git mergetoolsur ce fichier. Comme il s'agit d'une grande fusion, je voudrais éviter de refaire la fusion sur tous les autres fichiers, si je comprends bien, j'aurais à faire avec git merge --abort.

Je sais que je pourrais simplement éditer le fichier manuellement, mais ce serait assez fastidieux et il serait beaucoup plus facile de simplement refaire l' git mergetoolopération. Est-ce possible?

Hammar
la source

Réponses:

181

Il semble que je regardais au mauvais endroit. La solution s'est avérée assez simple.

git checkout -m <file>

Cela ramène le fichier à son état de conflit. Je peux alors courir git mergetoolpour refaire la fusion.

Hammar
la source
2
Cela a fonctionné pour moi. L'index s'est retrouvé dans un état fusionné, mais mergetool ne pensait pas qu'il y avait des fusions en suspens. J'ai juste fait la fusion en utilisant vi, mais c'était quand même bizarre.
Chris Cleeland
1
Merci! c'est exactement ce dont nous avons besoin. À propos, la fusion manuelle avec vi est toujours un plaisir et pleinement satisfaisant. le déplacement vers la gauche ou le déplacement vers la droite ne m'a jamais donné la certitude que la fusion se déroule comme prévu
asgs
1
Il y a quelques détails supplémentaires utiles (avec la même réponse) dans la réponse de cette question en double .
Joshua Goldberg
-4

Vous pouvez toujours modifier les fichiers manuellement.

Si vous utilisez le git merge --no-commit, vous aurez simplement un commit préparé (après la fusion automatique et semi-automatique).

Vous pouvez toujours modifier les fichiers en toute sécurité et ne vous engager que lorsque vous êtes entièrement satisfait.

Šimon Tóth
la source