Разрешение конфликтов Git в SourceTree

раньше я использовал плагин NetBeans GIT, затем я решил переключиться на SourceTree, так как он более эффективен и мощен. Как новичок в SourceTree мне удалось выяснить основные рабочие процессы Pull, Push и Commit.

однако я застрял, когда были конфликты файлов при слиянии с работой моего друга. В NetBeans, если есть какие-либо конфликты, плагин предлагает разрешить его во всплывающем окне, и я просто хочу перейти к интерфейсу разрешения конфликтов и принять правильный фрагмент кода, нажав кнопку. Это было просто.

в SourceTree есть что-то под названием внешний инструмент слияния, который не работал хорошо для меня. Когда я нажимаю правой кнопкой мыши на файл с конфликтами, он просто открывает два файла бок о бок, и в середине есть стрелки, указывающие слева направо. В нижней части экрана есть раскрывающийся список для выбора направления стрелки.

Я пытался использовать этот интерфейс для разрешения конфликтов, но мне не удалось. Это не исправило конфликты и объединил два файла.

когда я искал в Интернете, я обнаружил, что некоторые люди используют внешние плагины для решения конфликтов SourceTree для слияния. Вообще-то я тут немного потерялся. Вот почему я решил опубликовать эту проблему здесь, поскольку это может помочь кому-то вроде меня однажды.

Я знаю, что есть много людей, которые используют SourceTree в течение длительного времени. Может ли кто-нибудь из них рассказать мне, как эффективно разрешать конфликты в SourceTree?

должен ли я использовать внешний плагин или я должен использовать внешний инструмент слияния (если да, то как я могу его использовать)?

1 ответов


Я использую 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 должен справиться с этим изящно.

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

здесь альтернативное решение к этой проблеме, которая использует KDiff3 вместо TortoiseDiff / TortoiseMerge.