通过命令行将Sublime中的文件与Sublimerge合并

And*_*ies 12 merge sublimetext sublimetext2 sublimetext3 sublime-text-plugin

我正在尝试找到一个更好的合并文件选项,并希望尝试Sublime,因为我的工作是使用它完成的.所以我安装了Sublimerge,现在卡住了.我知道我可以比较两个已打开的文件或通过补充工具栏进行比较,但我想要做的是通过命令行将其关闭,这样我就可以从我的源代码控制程序中启动它,就像我可以使用其他所有合并工具一样看到.有没有人知道这样做的命令行格式?

注意 - 我早已放弃尝试使用sublime来处理合并,而是转而使用其他工具来处理这个问题.因此,我从来没有觉得我能接受任何答案,因为我没有检查它们是否按照我想要的方式工作,或者确实它们是否起作用.

Nic*_*lay 5

 subl -n --wait "<LEFT>" "<RIGHT>" --command "sublimerge_diff_views {\"left_read_only\": true, \"right_read_only\": true}"
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅"VCS集成".


jnn*_*nns 5

正如尼古拉已经建议的那样,这是你必须提出的整个指令~/.gitconfig:

[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}\"
Run Code Online (Sandbox Code Playgroud)


jle*_*lee 5

接受 jnns 的回答,但对 Windows 进行适当的更改。

%USERPROFILE%\.gitconfig

[merge]
    tool = sublimerge

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

[diff]
    tool = sublimerge

[difftool "sublimerge"]
    cmd = sublime_text -n --wait \"$REMOTE\" \"$LOCAL\" --command \"sublimerge_diff_views {\\\"left_read_only\\\": true, \\\"right_read_only\\\": true}\"
Run Code Online (Sandbox Code Playgroud)
  • 注意位置 .gitconfig
  • 在 Windows 中,可执行文件是sublime_text.exe,不是subl
  • 不要忘记将 sublime text 可执行文件添加到路径中


sup*_*ggy 1

我不确定具体该怎么做,但我越来越接近了。

首先,您需要一个通往 Sublime 二进制文件的便捷路径:

mkdir ~/bin
ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl
Run Code Online (Sandbox Code Playgroud)

然后,在 git GUI 或 git 命令行中,将 ~/bin/subl 配置为合并工具。

我使用 Source Tree,我还没有弄清楚如何最好地使用 Sublimerge,但我设法打开两个版本,合并它们,然后我必须做一些手动工作。

虽然还是不太顺利,但是聊胜于无!