【问题标题】:Merging files in Sublime with Sublimerge via command line通过命令行将 Sublime 中的文件与 Sublimerge 合并
【发布时间】:2013-10-18 06:58:56
【问题描述】:

我正在尝试寻找更好的合并文件选项,并想试用 Sublime,因为我的工作是使用它完成的。所以我安装了 Sublimerge,现在卡住了。我知道我可以比较两个已经打开的文件或通过侧边栏进行比较,但我想做的是通过命令行启动它,这样我就可以像使用其他所有合并工具一样从源代码控制程序中启动它见过。有谁知道执行此操作的命令行格式吗?

注意- 我早就放弃了尝试使用 sublime 来处理合并,而是改用其他工具来处理这个问题。因此,我从来没有觉得我可以接受任何答案,因为我不会检查它们是否以我想要的方式工作,或者它们是否真的有效。

【问题讨论】:

    标签: merge sublimetext2 sublimetext3 sublimetext sublime-text-plugin


    【解决方案1】:

    接受 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}\"
    
    • 注意.gitconfig的位置
    • 在 Windows 中,可执行文件是 sublime_text.exe,而不是 subl
    • 别忘了在路径中添加 sublime text 可执行文件

    【讨论】:

      【解决方案2】:

      正如 Nickolay 已经建议的那样,这是您必须在 ~/.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}\"
      

      【讨论】:

        【解决方案3】:
         subl -n --wait "<LEFT>" "<RIGHT>" --command "sublimerge_diff_views {\"left_read_only\": true, \"right_read_only\": true}"
        

        详情请见"VCS Integration"

        【讨论】:

          【解决方案4】:

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

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

          mkdir ~/bin
          ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl
          

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

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

          还是不流畅,但聊胜于无!

          【讨论】:

          • 完全忘记我发布了这个问题。我设法从我的源代码管理中获得了 sublime,但它不是很流畅,一直打开不应该打开的文件,而且这并不是一个很好的体验。我不认为 sublimemerge 真的能胜任这项工作。
          • 我正在使用 sublime 和 sublimerge,但在 mergetool 中使用 sublime 会在不使用 sublimerge 的拆分窗口中打开两个版本。您是否设法在 sublimerge 或标准 sublime 拆分窗口中打开了两个版本?
          • 不,就像您看到的那样,它们位于 sublime 的标准拆分窗口中。然后我不得不使用某个组合键在 sublimerge 中选择并打开正确的文件。这是一个正确的问题,因为我经常已经在 sublime 中打开了多个文档,然后必须选择正确的文档。考虑到崇高在某些圈子中被称为蜜蜂的膝盖,我有点惊讶没有合适的故事重新合并。
          猜你喜欢
          • 2017-03-29
          • 2015-01-13
          • 2021-03-20
          • 2021-07-08
          • 1970-01-01
          • 1970-01-01
          • 2013-12-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多