Jak interaktywnie (wizualnie) rozwiązywać konflikty w SourceTree / git
Używam (Windows) SourceTree dla mojego projektu git. Mogę to zrobić w wierszu polecenia lub w terminalu Linux.
Ale zastanawiam się, czy jest dobry sposób na interaktywne i wizualne rozwiązywanie konfliktów. Na przykład, jeśli pull wykryje konflikty, pojawi się narzędzie do konfliktów oparte na interfejsie GUI (np. P4Merge). Czy to możliwe? Zawsze zajmuję się ręcznym rozwiązywaniem konfliktów, co jest po prostu bolesne.Jest to na przykład wiadomość git pull
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.
3 answers
Z SourceTree, kliknij Tools - > Options. Następnie w zakładce "Ogólne" zaznacz pole, aby umożliwić SourceTree modyfikowanie plików konfiguracyjnych Git.
Następnie przejdź do zakładki "Diff". W dolnej części użyj rozwijanej listy, aby wybrać zewnętrzny program, którego chcesz użyć do wykonywania różnic i scalania. Zainstalowałem KDiff3 i bardzo mi się podoba. Po zakończeniu kliknij OK.
Teraz, gdy dojdzie do scalenia, możesz przejść do sekcji akcje->rozwiązywanie konfliktów- > Uruchom zewnętrzny Narzędzie Scalania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-22 18:30:21
Używam SourceTree wraz z TortoiseMerge / Diff, który jest bardzo łatwym i wygodnym narzędziem do różnicowania/scalania.
Jeśli chcesz go również użyć, to:
Pobierz samodzielną wersję TortoiseMerge / Diff(dość starą, ponieważ nie jest dostarczana 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 open
Tools > Options > Diff > External Diff / Merge
. WybierzTortoiseMerge
z obu list rozwijanych.Kliknij
OK
i wskaż SourceTree do swojej lokalizacjiTortoiseIDiff.exe
iTortoiseMerge.exe
.
Następnie możesz wybrać Resolve Conflicts > Launch External Merge Tool
z menu kontekstowego na każdym skonfliktowanym pliku w lokalnym repozytorium. To otworzy TortoiseMerge, gdzie można łatwo poradzić sobie ze wszystkimi konfliktami, masz. Po zakończeniu wystarczy zamknąć TortoiseMerge (nie musisz nawet zapisywać zmian, prawdopodobnie zostanie to wykonane automatycznie) i po kilku sekundach SourceTree powinien sobie z tym poradzić z gracją.
Jedyny problem polega na tym, że automatycznie tworzy kopię zapasową, nawet jeśli właściwa opcja nie jest zaznaczona .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:20
Gdy menu rozwiązuj konflikty->zawartość jest wyłączone, jeden z nich może znajdować się na liście oczekujących plików. Musimy wybrać opcję Conflicted files z listy rozwijanej (u góry)
Hope it helps
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-31 16:41:28