7

I configured my git to resolve merge conflicts with Sublimerge. For this, I was run:

git config --global merge.tool sublimerge

git config --global mergetool.sublimerge.cmd 'subl -n --wait \"$REMOTE\" \"$BASE\"   \"$LOCAL\" \"$MERGED\" --command \"sublimerge_diff_views\"'

git config --global mergetool.sublimerge.trustExitCode 'false'

git config --global diff.tool sublimerge

git config --global difftool.sublimerge.cmd 'subl -n --wait \"$REMOTE\" \"$LOCAL\" --command \"sublimerge_diff_views {\\\"left_read_only\\\": true, \\\"right_read_only\\\": true}\"'

When I run git mergetool, the Sublime will opening with four columns: .remote, .base, .local and the current file. But, all columns are empty.

And all columns names has a " after the file extension, like: file.php.REMOTE.44625.php", file.php.BASE.44625.php", file.php.LOCAL.44625.php"and file.php". Then i cant edit the conflict.

Anybody can help me?

Mr-Cutia
  • 83
  • 1
  • 5
  • Would one of the answers of http://stackoverflow.com/q/19297084/6309 be of any help? – VonC May 31 '14 at 05:26
  • @VonC, no... I alredy see this answers. – Mr-Cutia Jun 01 '14 at 11:24
  • does it work `git difftool`? Is there anything in the sublime text console (ctrl `)? presumably you're usling linux/mac? What did you get in the global config file ~/.gitconfig ? – drevicko May 01 '15 at 13:14
  • 1
    With Git 2.22 (Q2 2019, five years later), a `git config --global merge.tool smerge` will be enough. See [my answer below](https://stackoverflow.com/a/55799922/6309). – VonC Apr 22 '19 at 19:21

2 Answers2

9

In your ~/.gitconfig add following

[merge]
tool = sublimerge

[mergetool "sublimerge"]
cmd = subl -n --wait \"$REMOTE\" \"$BASE\" \"$LOCAL\" \"$MERGED\" --command \"sublimerge_diff_views\"
trustExitCode = false

[diff]
tool = sublimerge

[difftool "sublimerge"]
cmd = subl -n --wait \"$REMOTE\" \"$LOCAL\" --command \"sublimerge_diff_views {\\\"left_read_only\\\": true, \\\"right_read_only\\\": true}\"
Aram
  • 163
  • 4
  • 11
0

after adding git merge tool as sublime editor then verify ~/.gitconfig file.

$git config --list

user.email=xyz@live.com
user.name=xyz
color.ui=true
color.status=auto
color.branch=auto
push.default=matching
branch.autosetuprebase=always
core.editor=subl -n -w
merge.tool=sublimerge
mergetool.sublimerge.cmd=subl -n --wait \"$REMOTE\" \"$BASE\"   \"$LOCAL\" \"$MERGED\" --command \"sublimerge_diff_views\"
mergetool.sublimerge.trustexitcode=false
diff.tool=sublimerge
difftool.sublimerge.cmd=subl -n --wait \"$REMOTE\" \"$LOCAL\" --command \"sublimerge_diff_views {\\\"left_read_only\\\": true, \\\"right_read_only\\\": true}\"

if not reflected then manually add merge tool details

$vim ~/.gitconfig

[core]
        editor = subl -n -w
[merge]
        tool = sublimerge
[mergetool "sublimerge"]
        cmd = subl -n --wait \\\"$REMOTE\\\" \\\"$BASE\\\"   \\\"$LOCAL\\\" \\\"$MERGED\\\" --command \\\"sublimerge_diff_views\\\"
        trustExitCode = false
[diff]
        tool = sublimerge
[difftool "sublimerge"]
        cmd = subl -n --wait \\\"$REMOTE\\\" \\\"$LOCAL\\\" --command \\\"sublimerge_diff_views {\\\\\\\"left_read_only\\\\\\\": true, \\\\\\\"right_read_only\\\\\\\": true}\\\"
KARTHIKEYAN.A
  • 18,210
  • 6
  • 124
  • 133