Як перевірити наше / їхнє у файлі в magit?


16

Скажімо, у мене конфлікт злиття. Я бачу такий конфліктний файл:

Unstaged changes:
    Unmerged   Foo/bar/wibble/plop/elbow.txt

Я можу натиснути вкладку тут, щоб відкрити зміни та, можливо, перейти до точки всередині файлу, щоб виправити вручну, але якщо це великий файл з великою кількістю конфліктів, що може зайняти багато часу.

Як я можу попросити git через magit перевірити нашу чи їхню версію файлу, щоб вирішити конфлікт? Я можу скопіювати шлях, потім застосувати Shift-:для введення користувальницьку команду git, але, схоже, для цього має бути ярлик на клавіатурі. Я не бачу нічого очевидного в меню magit або ?спливаючих вікнах.


3
Хоча це не відповідає безпосередньо на ваше запитання, але може бути корисним. Перемістіть точку на конфліктний файл у magit-statusта натисніть, eщоб розпочати тристороннє злиття ediff. Інша альтернатива полягає в тому, що в конфліктному конфлікті ви можете увімкнути smerge-modeвиділення конфлікту та виконувати інтерактивне право злиття у вашому буфері (не едіфф). Прив'язка ключа префікса для smerge-modeпов'язаних команд C-c ^; ви можете натиснути, C-c ^ C-hщоб переглянути всі прив'язки клавіш.
Туда

Я також не знаходжу "наших" чи "їхніх" в документі. magit.github.io/master/magit.html#Pushing-and-Pulling
Ehvince

1
Добре питання, як відкрити запит на функцію?
Переконатись

1
хороша ідея @ Переконати, зроблено: github.com/magit/magit/isissue/1643
tenpn

1
Oooh: у наступній версії magit ви можете kна конфікті і вибрати, яку версію зберегти. Звучить ідеально! github.com/magit/magit/isissue/1643
tenpn

Відповіді:


16

Я не впевнений, коли ця функція була додана, але це все ідеально:

  1. Об’єднайте одну гілку в іншу і зіткнетеся з конфліктом
  2. У Magit буфері, будуть розділи для Merging master, і Unstaged changes, Staged changes. Суперечливий файл знаходиться вUnstaged changes
  3. У рядку з конфліктованим файлом натисніть, kщоб скасувати зміни (тобто суперечливі зміни)
  4. У мінібуфері ви побачите відповідь:

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


5

Є кілька рішень:

  • використовувати смерге-едіф. У файлі з конфліктом ви запускаєте M-x smerge-ediff. Він переведе вас у режим вирішення едіффа з чотирма відкритими буферами: вашим, їхнім, злиттям та буфером команд. У буфері команд ви використовуєте nта pпереходите до наступного чи попереднього з'єднання, "a" або "b", щоб прийняти зміни з першого або другого буфера, або ви можете перейти до буфера злиття та відредагувати його на свій смак.
  • використовуйте едіфф від magit, eна стабільній версії magit, або ( M-eабо ) в наступній гілці magit, і тоді ви опинитесь, як правило, як у першому випадкуM-mmagit-ediff-resolve
  • є також смерге-режим, C-c ^ nі C-c ^ pце допоможе вам перейти від переходу до попереднього чи наступного, потім ви можете відредагувати їх або використати, C-c ^ oщоб зберегти "іншу" версію, C-c ^ mзберегти "шахтну" версію, C-c ^ bзберегти стару версія та C-c ^ aзберегти їх усіх.
  • ви можете використовувати magit-find-file, щоб відкрити файл таким, яким він був у деяких комісіях.

Я не бачив, щоб у Tu Do вже була відповідь, яку я розміщую тут. Sory
Rémi

Дякую за вичерпний список, але я думаю, що відповідь на питання "чи є стислий спосіб отримати нашу або тиєрську версію" - ні. :(
tenpn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.