Hoe interactief (visueel) conflicten in SourceTree / git op te lossen

Ik gebruik (Windows) SourceTree voor mijn git-project. Ik kan het zowel in de opdrachtprompt als in de Linux-terminal doen.

Maar ik vraag me af of er een leuke manier is om interactief en visueel conflicten op te lossen. Als pull bijvoorbeeld conflicten detecteert, verschijnt er een op GUI gebaseerde conflicttool (bijv. P4Merge). Is het mogelijk?

Ik ben altijd bezig met het handmatig oplossen van conflicten, wat gewoon pijnlijk is.

Dit is bijvoorbeeld een git pullbericht, van 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.

Antwoord 1, autoriteit 100%

Klik in SourceTree op Extra->Opties. Zorg er dan op het tabblad “Algemeen” voor dat u het vakje aanvinkt om SourceTree toe te staan uw Git-configuratiebestanden te wijzigen.

Schakel vervolgens over naar het tabblad ‘Verschil’. Gebruik in de onderste helft de vervolgkeuzelijst om het externe programma te selecteren dat u wilt gebruiken om de diffs en het samenvoegen te doen. Ik heb KDiff3geïnstalleerd en vind het goed genoeg. Als je klaar bent, klik je op OK.

Als er nu een merge is, kun je naar Actions->Conflicten oplossen->Launch External Merge Tool gaan.


Antwoord 2, autoriteit 8%

Ik gebruik SourceTree samen met TortoiseMerge/Diff, wat een zeer gemakkelijke en handige diff/merge-tool is.

Als je het ook wilt gebruiken, doe dan:

  1. Krijg een stand-alone versie van Tortoisemerge / DIFF (vrij oud, omdat het niet zelfstandige verzendt sinds versie 1.6.7 van Tortosiesvn, dat is sinds juli 2011). Links en details in dit antwoord .

  2. Unzip TortoiseIDiff.exeen TortoiseMerge.exeNaar elke map (c:\Program Files (x86)\Atlassian\SourceTree\extras\in mijn geval).

  3. In Sourcetree Open Tools > Options > Diff > External Diff / Merge. Selecteer TortoiseMergein beide vervolgkeuzelijsten.

  4. HIT OKEN POINT SOURCETREE NAAR JE LOCATION VAN TortoiseIDiff.exeEN TortoiseMerge.exe.

Hierna kunt u Resolve Conflicts > Launch External Merge Toolvanuit contextmenu op elk conflicterend bestand in uw lokale repository. Dit zal Tortoisemerge openen, waar u gemakkelijk kunt omgaan met alle conflicten, u hebt. Eenmaal voltooid, sluit Simply Tortoisemerge (u hoeft niet eens wijzigingen op te slaan, dit zal waarschijnlijk automatisch worden gedaan) en na enkele seconden sourcetree moet dat gracieus aansluiten.

Het enige probleem is dat het automatisch een back-upkopie maakt, hoewel juiste optie is uitgeschakeld .


Antwoord 3, Autoriteit 3%

Wanneer het menu van conflicten-en-GT; inhoud is uitgeschakeld, staat u mogelijk op de lijst met in afwachting van bestanden. We moeten de optie Conflicted Files selecteren in de vervolgkeuzelijst (boven)

Ik hoop dat het helpt

Other episodes