如何在SourceTree中使用VS Code作为合并和差异工具?

时间:2018-04-23 13:17:49

标签: git visual-studio-code atlassian-sourcetree

This question以及其他一些人讨论了如何在Mac上运行,但我找不到来自MS或Atlassian的文档在Windows 上执行此操作而没有尝试制作它是全球性的git设置。 (我更愿意尽可能在IDE中更改内容。)

SourceTree的“选项”对话框“差异”选项卡中的“自定义”设置使用哪些参数,用于差异化和与VS-Code合并?

2 个答案:

答案 0 :(得分:28)

可能还有其他更好的变化,但经过一些实验后,我发现这些工作做得很好......

  • 为“外部差异工具”和“合并工具”选择“自定义”
  • 两种情况下的“Diff Command”是安装VS-Code的路径,例如:

      

    C:/ Users / username / AppData / Local / Programs / Microsoft VS Code / Code.exe
      
      C:/ Program Files(x86)/ Microsoft VS Code / Code.exe

  • Diff'ing的命令行参数是:

      

    - diff - 等待“$ LOCAL”“$ REMOTE”

  • 合并:

      

    -n - 等待“$ MERGED”

'-n'标志使VS-Code打开一个新窗口,我更喜欢这个窗口,因为VS-Code打开得这么快,但你可以省略它。处理合并冲突时,必须在完成继续操作后关闭该文件。 SourceTree似乎并不一致地删除它创建的中间文件,但您可以轻松地选择,右键单击并从“非暂存文件”部分“删除”它们。

答案 1 :(得分:0)

我能够使用code.cmd脚本按照以下步骤进行设置

  • 将“自定义”设置为Diff和Merge的外部工具
  • 指向code.cmd命令
      

    C:\ Users \ [用户名] \ AppData \ Local \ Programs \ Microsoft VS Code \ bin \ code.cmd

  • 使用与@HeyHeyJC解释的相同的命令行参数

      

    Diff'ing的命令行参数为:

         

    -diff --wait“ $ LOCAL”“ $ REMOTE”

         

    对于合并:

         

    -n-等待“ $ MERGED”

对我来说,我然后可以同时使用diff和从sourcetree合并。


注意:默认情况下, code.cmd 文件包含命令行arg以打开CLI指令 "%~dp0..\resources\app\out\cli.js"每次打开都有些乏味!我删除了此文件,因此我的文件如下所示,现在仅打开了从sourcetree发送的文件。

@echo off
setlocal
set VSCODE_DEV=
set ELECTRON_RUN_AS_NODE=1
call "%~dp0..\Code.exe" %*
endlocal