Разрешение конфликтов Git в SourceTree
раньше я использовал плагин NetBeans GIT, затем я решил переключиться на SourceTree, так как он более эффективен и мощен. Как новичок в SourceTree мне удалось выяснить основные рабочие процессы Pull, Push и Commit.
однако я застрял, когда были конфликты файлов при слиянии с работой моего друга. В NetBeans, если есть какие-либо конфликты, плагин предлагает разрешить его во всплывающем окне, и я просто хочу перейти к интерфейсу разрешения конфликтов и принять правильный фрагмент кода, нажав кнопку. Это было просто.
в SourceTree есть что-то под названием внешний инструмент слияния, который не работал хорошо для меня. Когда я нажимаю правой кнопкой мыши на файл с конфликтами, он просто открывает два файла бок о бок, и в середине есть стрелки, указывающие слева направо. В нижней части экрана есть раскрывающийся список для выбора направления стрелки.
Я пытался использовать этот интерфейс для разрешения конфликтов, но мне не удалось. Это не исправило конфликты и объединил два файла.
когда я искал в Интернете, я обнаружил, что некоторые люди используют внешние плагины для решения конфликтов SourceTree для слияния. Вообще-то я тут немного потерялся. Вот почему я решил опубликовать эту проблему здесь, поскольку это может помочь кому-то вроде меня однажды.
Я знаю, что есть много людей, которые используют SourceTree в течение длительного времени. Может ли кто-нибудь из них рассказать мне, как эффективно разрешать конфликты в SourceTree?
должен ли я использовать внешний плагин или я должен использовать внешний инструмент слияния (если да, то как я могу его использовать)?
1 ответов
Я использую 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 должен справиться с этим изящно.
единственная проблема в том, что она автоматически создает резервную копию, хотя правильный вариант не установлен.
здесь альтернативное решение к этой проблеме, которая использует KDiff3 вместо TortoiseDiff / TortoiseMerge.