Używam (Windows) SourceTree do mojego projektu git. Mogę to zrobić w wierszu poleceń lub terminalu Linux.
Zastanawiam się jednak, czy istnieje dobry sposób na interaktywne i wizualne rozwiązywanie konfliktów. Na przykład, jeśli pull wykryje konflikty, wyskakuje narzędzie konfliktu oparte na GUI (np. P4Merge). Czy to możliwe?
Zawsze rozwiązuję konflikty ręcznie, co jest po prostu bolesne.
Na przykład jest to pull
wiadomość git z 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.
Używam SourceTree wraz z TortoiseMerge / Diff, które jest bardzo łatwym i wygodnym narzędziem porównywania / scalania.
Jeśli chcesz go również używać, to:
Zdobądź samodzielną wersję TortoiseMerge / Diff (dość starą, ponieważ nie jest dostarczana jako samodzielna wersja od wersji 1.6.7 TortosieSVN, czyli od lipca 2011). Linki i szczegóły w tej odpowiedzi .
Rozpakuj
TortoiseIDiff.exe
iTortoiseMerge.exe
do dowolnego folderu (c:\Program Files (x86)\Atlassian\SourceTree\extras\
w moim przypadku).W SourceTree otwarte
Tools > Options > Diff > External Diff / Merge
. WybierzTortoiseMerge
z obu list rozwijanych.Hit
OK
i wskaż SourceTree na swoją lokalizacjęTortoiseIDiff.exe
iTortoiseMerge.exe
.Następnie możesz wybrać
Resolve Conflicts > Launch External Merge Tool
z menu kontekstowego każdy plik będący w konflikcie w lokalnym repozytorium. Otworzy się TortoiseMerge, gdzie możesz łatwo poradzić sobie ze wszystkimi konfliktami, które masz. Po zakończeniu po prostu zamknij TortoiseMerge (nie musisz nawet zapisywać zmian, prawdopodobnie zostanie to zrobione automatycznie) i po kilku sekundach SourceTree powinno to z wdziękiem obsłużyć.Jedynym problemem jest to, że automatycznie tworzy kopię zapasową, mimo że nie jest zaznaczona odpowiednia opcja .
źródło
Gdy menu Rozwiązywanie konfliktów-> Zawartość jest wyłączone, jeden z nich może znajdować się na liście plików oczekujących. Musimy wybrać opcję Pliki w konflikcie z listy rozwijanej (u góry)
mam nadzieję, że to pomoże
źródło