Powiedzmy, że mam konflikt scalania. Widzę taki plik będący w konflikcie:
Unstaged changes:
Unmerged Foo/bar/wibble/plop/elbow.txt
Mogę kliknąć tutaj, aby otworzyć zmiany i być może przeskoczyć do punktu w pliku, aby naprawić ręcznie, ale jeśli jest to duży plik z wieloma konfliktami, może to być czasochłonne.
Jak mogę poprosić git za pomocą magit, aby wyewidencjonował naszą lub ich wersję pliku, aby rozwiązać konflikt? Mogę skopiować ścieżkę, a następnie użyć, Shift-:
aby wprowadzić niestandardowe polecenie git, ale wydaje się, że musi to być skrót klawiaturowy. Nie widzę niczego oczywistego w menu magit lub ?
wyskakującym okienku .
magit-status
i naciśnij,e
aby rozpocząć łączenie 3-kierunkoweediff
. Inną alternatywą jest to, że w buforze konfliktu możesz włączyćsmerge-mode
podświetlanie konfliktu i wykonywać interaktywne scalanie bezpośrednio w buforze (nie ediff). Powiązanie klucza prefiksu dlasmerge-mode
powiązanych poleceń toC-c ^
; możesz nacisnąć,C-c ^ C-h
aby wyświetlić wszystkie przypisania klawiszy.k
skonfliktować się i wybrać, którą wersję zachować. Brzmi świetnie! github.com/magit/magit/issues/1643Odpowiedzi:
Nie jestem pewien, kiedy ta funkcja została dodana, ale robi to doskonale:
Merging master
, aUnstaged changes
,Staged changes
. Konflikt pliku znajduje się wUnstaged changes
k
aby odrzucić zmiany (tzn. Zmiany będące w konflikcie)For <conflicted file> checkout: [o]ur stage, [t]heir stage, [c]onflict, or [C-g] to abort
źródło
Istnieje kilka rozwiązań:
M-x smerge-ediff
. Nastąpi przejście do trybu rozwiązywania Ediff z czterema otwartymi buforami: twoją, ich, scalaniem i buforem poleceń. W buforze poleceń używaszn
i,p
aby przejść do następnego lub poprzedniego przystawki, „a” lub „b”, aby zaakceptować zmianę z pierwszego lub drugiego bufora, lub możesz przejść do bufora scalania i edytować go według własnych upodobań.e
na stabilnej wersji magit, lubM-e
lubM-m
(magit-ediff-resolve
) w następnej gałęzi magit, a wtedy znajdziesz się głównie jak w pierwszym przypadkuC-c ^ n
iC-c ^ p
pomogą Ci przejść od przystojniaka do poprzedniego lub następnego, można następnie edytować je lub wykorzystanieC-c ^ o
zachować „inne” wersję,C-c ^ m
aby utrzymać „mine” wersję,C-c ^ b
aby zachować stary wersja iC-c ^ a
zachować je wszystkie.źródło