Как интерактивно (визуально) разрешать конфликты в SourceTree / git

Я использую (Windows) SourceTree для моего проекта git. Я могу сделать это в командной строке или терминале Linux.

но, мне интересно, есть ли хороший способ, чтобы интерактивно и визуально разрешать конфликты. Например, если pull обнаруживает конфликты, появляется инструмент конфликтов на основе GUI (например, 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 и как это достаточно хорошо. Когда вы закончите, нажмите OK.

теперь, когда есть слияние, вы можете перейти к действиям - >разрешить Конфликты- > Запустить Инструмент Внешнего Слияния.


Я использую SourceTree вместе с TortoiseMerge/Diff, который очень простой и удобный инструмент diff/merge.

если вы хотите использовать его, а также, то:

  1. получить автономную версию TortoiseMerge / Diff (довольно старая, так как она не поставляется автономно с версии 1.6.7 TortosieSVN, то есть с июля 2011 года). Ссылки и подробности в ответ.

  2. распакуйте TortoiseIDiff.exe и TortoiseMerge.exe в любую папку (c:\Program Files (x86)\Atlassian\SourceTree\extras\ в моем случае.)

  3. в SourceTree open Tools > Options > Diff > External Diff / Merge. Выберите TortoiseMerge в обоих выпадающих списках.

  4. нажмите OK и укажите SourceTree на ваше местоположение TortoiseIDiff.exe и TortoiseMerge.exe.

после этого, вы можете выбрать Resolve Conflicts > Launch External Merge Tool из контекстного меню для каждого конфликтующего файла в локальном репозитории. Это откроет TortoiseMerge, где вы сможете легко справиться со всеми конфликтами, которые у вас есть. После завершения, просто закройте TortoiseMerge (вам даже не нужно сохранять изменения, это, вероятно, будет сделано автоматически), и через несколько секунд SourceTree должен справиться с этим изящно.

единственная проблема в том, что она автоматически создает резервную копию, хотя правильный вариант не установлен.


когда меню разрешить конфликты->содержимое отключено, один может быть в списке ожидающих файлов. Нам нужно выбрать опцию конфликтные файлы из выпадающего списка (сверху)

надеюсь, что это помогает