如何使用Visual Studio代码作为Git的默认编辑器

在命令行使用git时,我想知道是否可以使用Visual Studio Code作为默认编辑器,即创build提交注释时,以及从命令行查看文件的差异。

我明白,它不可能用于合并(至less在一分钟),但有人知道是否有可能使用它来查看差异,如果是的话,将需要什么样的命令行选项.gitconfig文件使这发生?

更新1:

我已经尝试了一种类似于过去为Notepad ++所做的方法,即

#!/bin/sh "c:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*" 

并用于:

 #!/bin/sh "C:\Users\gep13\AppData\Local\Code\app-0.1.0\Code.exe" "$*" 

但是这会导致错误信息:

 C:\temp\testrepo [master +1 ~0 -0]> git commit [8660:0504/084217:ERROR:crash_reporter_win.cc(70)] Cannot initialize out-of-process crash handler Aborting commit due to empty commit message. C:\temp\testrepo [master +1 ~0 -0]> 

代码打开正确,与预期的内容,但它不等待响应,即单击保存并closures窗口返回提示。

更新2:

我刚刚听到从VSCode工作的开发者之一。 看起来像这个function目前不支持:-(

如果你有兴趣看到这个function被添加,你可能想考虑在这里添加你的选票:

http://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/7756482-support-git-configure-diff-and-merge-tools

更新3:

我已经被可靠地告知 ,这个function已经被VSCode团队采纳了,所以我期待将来的版本将包括它。

更新4:

感谢下面的@ f-boucheros评论,我已经能够获得VS Code作为提交评论,rebase等默认编辑器。我仍然想看看是否有可能使用它作为diff工具。

更新5:

根据问题的接受答案,现在可以使用V1.0版本的代码。

在最新版本(v1.0,2016年3月发布)中,您现在可以使用VS Code作为默认的git commit / diff工具 。 引用文件:

  1. 确保你可以从命令行运行code --help并获得帮助。
    • 如果您没有看到帮助,请按照以下步骤操作:
      • Mac:selectShell命令:在 “命令面板”的path中安装“代码”命令
      • Windows:确保在安装期间select了“ 添加到path ”。
      • Linux:确保通过新的.deb或.rpm软件包安装了代码。
  2. 从命令行运行git config --global core.editor "code --wait"

现在你可以运行git config --global -e并使用VS Code作为编辑器来configurationGit。 在这里输入图像说明 添加以下内容以支持使用VS代码作为diff工具:

 [diff] tool = default-difftool [difftool "default-difftool"] cmd = code --wait --diff $LOCAL $REMOTE 

这将利用您可以传递给VS Code的新的--diff选项来并排比较两个文件。

总而言之,下面是一些可以在VS代码中使用Git的例子:

  • git rebase HEAD~3 -i允许使用VS Code进行交互式重新分页
  • git commit允许使用VS代码来提交消息
  • git add -p后面跟e交互添加
  • git difftool <commit>^ <commit>允许使用VS Code作为diff编辑器进行更改

据我所知,VSCode不在AppData中了。

所以通过在命令提示符窗口中执行该命令来设置默认的git编辑器:

 git config --global core.editor "'C:\Program Files (x86)\Microsoft VS Code\code.exe' -w" 

参数-w ,– --wait是在返回之前等待窗口closures。 Visual Studio代码基于Atom编辑器。 如果你还安装了atom --help执行命令atom --help 。 你会看到帮助中的最后一个参数是等待。

下次你做一个git rebase -i HEAD~3它会popupVisual Studio代码。 一旦VSCodeclosures,Git将收回领先。

注意:我目前版本的VSCode是0.9.2

我希望有所帮助。

GitPad将您当前的文本编辑器设置为Git的默认编辑器。

我在Windows 10中的.txt文件的默认编辑器是Visual Studio Code,运行GitPad曾经使它成为Git的默认编辑器。 我没有遇到问题中提到的问题(Git等到VS Code窗口closures在我的情况)。

.exe文件的链接不适用于我,您可能需要自己编译源代码。)

我不知道你可以做到这一点,但是你可以尝试在你的gitconfig文件中添加这些。

尝试从这些值replacekdiff3指向Visual Studio代码可执行文件。

[merge] tool = kdiff3 [mergetool "kdiff3"] path = C:/Program Files/KDiff3/kdiff3.exe keepBackup = false trustExitCode = false

我打开了我的.gitconfig并修改它:

 [core] editor = 'C:/Users/miqid/AppData/Local/Code/app-0.1.0/Code.exe' 

这对我来说(我在Windows 8上)。

但是,我注意到,我尝试了一个任意的git commit ,在我的Git Bash控制台中,我看到以下消息:

 [9168:0504/160114:INFO:renderer_main.cc(212)] Renderer process started 

不确定这可能是什么后果。

好消息! 在撰写本文时,这个特征已经在0.10.12-内部人士发布中实施,并通过0.10.14-内部人员进行 。 因此,我们将在即将到来的1.0版VS代码中使用它 。

实现参考: 实现-w / – 等待命令行arg

我将Visual Studio代码设置为默认打开.txt文件。 接下来我使用了简单的命令: git config --global core.editor "'C:\Users\UserName\AppData\Local\Code\app-0.7.10\Code.exe\'" 。 一切工作都很好。

在您的Mac Terminal应用程序中运行此命令

 git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"