Kaip interaktyviai (vizualiai) išspręsti SourceTree / git konfliktus

Aš naudoju (Windows) SourceTree mano git projektui. Tai galiu padaryti komandų eilutėje arba Linux terminale.

Bet įdomu, ar yra geras būdas interaktyviai ir vizualiai išspręsti konfliktus. Pavyzdžiui, jei traukinys aptinka konfliktus, atsiranda konflikto sąsajos įrankis (pvz., P4Merge). Ar tai įmanoma?

Visuomet sprendžiu rankiniu būdu konfliktus, kurie tik skauda.

Tai, pavyzdžiui, yra „Git pull pranešimas iš „SourceTree“.

 git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit origin master From W:\repo\ * branch master -> FETCH_HEAD Updating 33c07bf..41e0249 error: Your local changes to the following files would be overwritten by merge: foo.cpp goo.cpp goo.hpp Please, commit your changes or stash them before you can merge. Aborting Completed with errors, see above. 
92
28 мая '13 в 22:50 2013-05-28 22:50 Nullptr yra nustatytas gegužės 28 d ., 13 val. 10:50 pm 2013-05-28 22:50
@ 3 atsakymai

„SourceTree“ pasirinkite Tools-> Options. Tada skirtuke Bendra pažymėkite žymės >

Tada eikite į skirtuką „Diff“. Apatinėje pusėje naudokite išskleidžiamąjį sąrašą, kad pasirinktumėte išorinę programą, kurią norite naudoti diferencijuoti ir sujungti. Įdiegiau KDiff3 ir jums patiko. Baigę spustelėkite „Gerai“.

Dabar, kai yra susiliejimas, galite pereiti prie veiksmų -> išspręsti konfliktus -> paleisti išorinį sujungimo įrankį.

105
30 мая '13 в 0:53 2013-05-30 00:53 atsakymas pateikiamas gtrig 30 d., 13 val. 0:53 2013-05-30 00:53

Naudoju „SourceTree“ su „TortoiseMerge“ / „Diff“, kuri yra labai paprasta ir patogi diferencialo priemonė.

Jei norite jį naudoti, tada:

  • Gaukite atskirą „TortoiseMerge“ / „Diff“ versiją (gana seną, nes ji nėra pateikiama atskirai nuo TortosieSVN 1.6.7 versijos, ty nuo 2011 m. Liepos mėn.). Nuorodos ir detalės šiame atsakyme .

  • Atleiskite TortoiseIDiff.exe ir TortoiseMerge.exe į bet kurį aplanką ( c:\Program Files (x86)\Atlassian\SourceTree\extras\ mano atveju).

  • „SourceTree“ atidarykite „ Tools > Options > Diff > External Diff / Merge . Abiejuose išskleidžiamuosiuose sąrašuose pasirinkite „ TortoiseMerge “.

  • Spustelėkite OK ir nurodykite SourceTree į savo vietą TortoiseIDiff.exe ir TortoiseMerge.exe .

border=0

Po to galite pasirinkti Resolve Conflicts > Launch External Merge Tool iš kiekvienos prieštaraujančio failo vietiniame saugykloje kontekstiniame meniu. Tai atveria „TortoiseMerge“, kur galėsite lengvai valdyti visus konfliktus. Baigę tiesiog uždarykite „TortoiseMerge“ (net nereikia išsaugoti pakeitimų, tai tikriausiai bus atliekama automatiškai), o po kelių sekundžių „SourceTree“ turėtų apdoroti jį elegantiškai.

Vienintelė problema yra ta, kad ji automatiškai sukuria atsarginę kopiją, net jei nėra patikrinta teisinga parinktis .

8
24 сент. atsakymas trejder 24 sep . 2014-09-24 00:16 '14 ne 0:16 2014-09-24 00:16

Jei išjungiate kontekstą „Išspręsti konfliktus-> turinį“, galite įvesti laukiančių failų sąrašą. Išskleidžiamajame sąraše (aukščiau) turime pasirinkti parinktį „Konfliktiniai failai“

tikiuosi, kad tai padės

4
31 марта '15 в 19:41 2015-03-31 19:41 Atsakymą Ozkary pateikė kovo 31 d. 15, 19:41 2015-03-31 19:41