Как интерактивно (визуально) разрешать конфликты в SourceTree/git
Я использую (Windows) SourceTree для моего проекта git. Я могу сделать это в командной строке или в терминале Linux.
Но мне интересно, есть ли хороший способ интерактивно и визуально разрешать конфликты. Например, если pull обнаруживает конфликты, появляется инструмент конфликта на основе графического интерфейса (например, P4Merge). Возможно ли это?
Я всегда делаю ручное разрешение конфликтов, что просто больно.
Это, например, сообщение git pull
, из 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.
Ответы
Ответ 1
В SourceTree выберите Tools- > Options. Затем на вкладке "Общие" установите флажок, чтобы позволить SourceTree изменять ваши конфигурационные файлы Git.
Затем перейдите на вкладку "Diff". В нижней половине используйте раскрывающийся список, чтобы выбрать внешнюю программу, которую вы хотите использовать для выполнения различий и слияния. Я установил KDiff3 и вам понравилось. Когда вы закончите, нажмите "ОК".
Теперь, когда есть слияние, вы можете перейти в Actions- > Resolve Conflicts- > Launch External Merge Tool.
Ответ 2
Я использую SourceTree вместе с TortoiseMerge/Diff, который является очень простым и удобным инструментом diff/merge.
Если вы хотите использовать его, а затем:
-
Получить автономную версию TortoiseMerge/Diff (довольно старая, поскольку она не поставляется отдельно с версии 1.6.7 TortosieSVN, то есть с июля 2011 года). Ссылки и подробности в этом ответе.
-
Разархивируйте TortoiseIDiff.exe
и TortoiseMerge.exe
в любую папку (c:\Program Files (x86)\Atlassian\SourceTree\extras\
в моем случае).
-
В SourceTree open Tools > Options > Diff > External Diff / Merge
. Выберите TortoiseMerge
в обоих раскрывающихся списках.
-
Нажмите OK
и укажите SourceTree на ваше местоположение TortoiseIDiff.exe
и TortoiseMerge.exe
.
После этого вы можете выбрать Resolve Conflicts > Launch External Merge Tool
из контекстного меню в каждом конфликтующем файле в локальном репозитории. Это откроет TortoiseMerge, где вы сможете легко справиться со всеми конфликтами, которые у вас есть. Закончив, просто закройте TortoiseMerge (вам даже не нужно сохранять изменения, это, вероятно, будет сделано автоматически), и через несколько секунд SourceTree должно обработать это изящно.
Единственная проблема заключается в том, что он автоматически создает резервную копию, даже если правильный вариант не отмечен.
Ответ 3
При отключении контекста "Разрешить конфликты- > контент" можно войти в список ожидающих файлов. Нам нужно выбрать опцию Conflicted files из раскрывающегося списка (вверху)
надеюсь, что это поможет