Jak sprawdzić nasze / swoje w pliku w Magit?


16

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 .


3
Chociaż nie odpowiada to bezpośrednio na twoje pytanie, ale może być przydatne. Przenieś punkt do pliku konfliktu magit-statusi naciśnij, eaby rozpocząć łączenie 3-kierunkowe ediff. Inną alternatywą jest to, że w buforze konfliktu możesz włączyć smerge-modepodświetlanie konfliktu i wykonywać interaktywne scalanie bezpośrednio w buforze (nie ediff). Powiązanie klucza prefiksu dla smerge-modepowiązanych poleceń to C-c ^; możesz nacisnąć, C-c ^ C-haby wyświetlić wszystkie przypisania klawiszy.
— Tu Do

Nie znalazłem też „naszego” ani „ich” w dokumencie. magit.github.io/master/magit.html#Pushing-and-Pulling
— Ehvince

1
Wygląda na dobre pytanie, aby otworzyć żądanie funkcji?
— Ehvince

1
dobry pomysł @Ehvince, zrobione: github.com/magit/magit/issues/1643
— tenpn

1
Oooh: w następnej wersji magit możesz kskonfliktować się i wybrać, którą wersję zachować. Brzmi świetnie! github.com/magit/magit/issues/1643
— tenpn

Odpowiedzi:


16

Nie jestem pewien, kiedy ta funkcja została dodana, ale robi to doskonale:

  1. Połącz jedną gałąź w drugą i napotkaj konflikt
  2. W buforze MAGIT, będzie sekcje Merging master, a Unstaged changes, Staged changes. Konflikt pliku znajduje się wUnstaged changes
  3. W linii z plikiem będącym w konflikcie naciśnij przycisk, kaby odrzucić zmiany (tzn. Zmiany będące w konflikcie)
  4. W minibuforze zobaczysz odpowiedź:

For <conflicted file> checkout: [o]ur stage, [t]heir stage, [c]onflict, or [C-g] to abort


5

Istnieje kilka rozwiązań:

  • użyj smerge-ediff. W pliku z konfliktem uruchamiasz 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żywasz ni, paby 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ń.
  • użyj ediff z magit, ena stabilnej wersji magit, lub M-elub M-m( magit-ediff-resolve) w następnej gałęzi magit, a wtedy znajdziesz się głównie jak w pierwszym przypadku
  • istnieje również smerge-mode, C-c ^ ni C-c ^ ppomogą Ci przejść od przystojniaka do poprzedniego lub następnego, można następnie edytować je lub wykorzystanie C-c ^ ozachować „inne” wersję, C-c ^ maby utrzymać „mine” wersję, C-c ^ baby zachować stary wersja i C-c ^ azachować je wszystkie.
  • możesz użyć magit-find-file, aby otworzyć plik tak, jak był w pewnym zatwierdzeniu.

Nie widziałem, że Tu Do ma już większość odpowiedzi, które tu zamieszczam. Sory
— Rémi

Dzięki za wyczerpującą listę, ale odpowiedź na pytanie „czy istnieje zwięzły sposób na uzyskanie wersji Ours or Thiers” brzmi „nie”. :(
— tenpn
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.