Disons que j'ai un conflit de fusion. Je vois un fichier en conflit comme celui-ci:
Unstaged changes:
Unmerged Foo/bar/wibble/plop/elbow.txt
Je peux cliquer sur l'onglet ici pour ouvrir les modifications et peut-être sauter à un point à l'intérieur du fichier pour le corriger à la main, mais s'il s'agit d'un gros fichier avec beaucoup de conflits, cela peut prendre du temps.
Comment puis-je demander à git, via magit, de récupérer la nôtre ou la version du fichier, pour résoudre le conflit? Je peux copier le chemin, puis utiliser Shift-:
pour entrer une commande git personnalisée, mais il semble qu'il y ait un raccourci clavier pour cela. Je ne vois rien d'évident dans le menu magit ou la fenêtre contextuelle ?
.
magit-status
et appuyez sure
pour démarrer la fusion à 3 avecediff
. Une autre alternative est que dans un tampon de conflit, vous pouvez activer la mise ensmerge-mode
surbrillance des conflits et effectuer une fusion interactive directement dans votre tampon (pas ediff). La liaison de clé de préfixe poursmerge-mode
les commandes associées estC-c ^
; vous pouvez appuyer surC-c ^ C-h
pour afficher toutes les liaisons de touches.k
sur un confict et choisir la version à conserver. C'est parfait! github.com/magit/magit/issues/1643Réponses:
Je ne sais pas quand cette fonctionnalité a été ajoutée, mais elle le fait parfaitement:
Merging master
, etUnstaged changes
,Staged changes
. Le fichier en conflit est dansUnstaged changes
k
pour ignorer les modifications (c'est-à-dire les modifications en conflit)For <conflicted file> checkout: [o]ur stage, [t]heir stage, [c]onflict, or [C-g] to abort
la source
Il existe plusieurs solutions:
M-x smerge-ediff
. Il vous mettra en mode de résolution ediff, avec quatre tampons ouverts: le vôtre, le leur, la fusion et le tampon de commande. Dans le tampon de commande, vous utilisezn
etp
pour aller au morceau suivant ou précédent, "a" ou "b" pour accepter les modifications du premier ou du deuxième tampon, ou vous pouvez aller au tampon de fusion et le modifier à votre guise.e
la version stable de magit, ouM-e
ouM-m
(magit-ediff-resolve
) dans la prochaine branche de magit, et vous vous retrouverez surtout comme dans le premier casC-c ^ n
etC-c ^ p
vous aidera à passer d'un morceau au précédent ou au suivant, vous pouvez ensuite les éditer, ou utiliserC-c ^ o
pour garder la `` autre '' version,C-c ^ m
pour garder la `` mienne '',C-c ^ b
pour garder l'ancienne version etC-c ^ a
de les garder tous.la source