Как интерактивно (визуально) разрешать конфликты в SourceTree / git
Я использую (Windows) SourceTree для моего проекта git. Я могу сделать это в командной строке или терминале Linux.
но, мне интересно, есть ли хороший способ, чтобы интерактивно и визуально разрешать конфликты. Например, если pull обнаруживает конфликты, появляется инструмент конфликтов на основе графического интерфейса (например, P4Merge). Возможно ли это?
Я всегда делаю ручное разрешение конфликтов, что просто больно.
Это, например, git pull
сообщение от Конечно.
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 ответа:
из SourceTree, нажмите на Инструменты- > Параметры. Затем на вкладке "Общие"установите флажок, чтобы разрешить SourceTree изменять файлы конфигурации Git.
затем перейдите на вкладку "Diff". В нижней половине используйте раскрывающийся список, чтобы выбрать внешнюю программу, которую вы хотите использовать для выполнения различий и слияния. Я установил KDiff3 и как это достаточно хорошо. Когда вы закончите, нажмите кнопку ОК.
теперь, когда есть слияние, вы можете перейти под действия - > разрешить Конфликты- > Запуск Внешнего Инструмента Слияния.
Я использую 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 должен справиться с этим изящно.единственная проблема заключается в том, что он автоматически создает резервную копию, даже если правильная опция не отмечена.