VSCode 作为 Windows Subsystem for linux (WSL) 上的 Git 编辑器

Posted

技术标签:

【中文标题】VSCode 作为 Windows Subsystem for linux (WSL) 上的 Git 编辑器【英文标题】:VSCode as Git editor on Windows Subsystem for linux (WSL) 【发布时间】:2019-02-11 14:56:19 【问题描述】:

上下文

系统信息(Windows)

OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.17134 N/A Build 17134
...
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: Intel64 Family 6 Model 158 Stepping 10 GenuineIntel ~3696 Mhz
Bios Version:              American Megatrends Inc. 2.20, 10/27/2017

系统信息 (WSL)

OS: Debian
Kernel: x86_64 Linux 4.4.0-17134-Microsoft
Shell: zsh 5.3.1
CPU: Intel Core i7-8700K CPU @ 3.696GHz
RAM: 8041MiB / 16344MiB

Git

我的~/.gitconfig 中有这个:

[core]
    editor = code --wait

问题:

当我运行git commit 时,vscode 以C:\mnt\$PathToRepo$\.git\COMMIT_EDITMSG 开头,但是这个文件是空的(它应该有要提交的更改+一个差异)。

当我编写提交消息,保存并退出时,我在终端中得到了这个:

Aborting commit due to empty commit message.

注意

当我这样做时:

    运行git commit

    在 vscode 中写入提交信息(例如:Initialize repo),保存并关闭;

    Aborting commit due to empty commit message.之后,我再次运行git commit

VSCode 将使用我在第 2 步中编写的相同提交消息打开(即:Initialize repo

【问题讨论】:

我至少可以确认我看到了同样的东西。我正在使用来自github.com/andy-5/wslgit 的wslgit,但这似乎没有任何帮助。我想这个问题可能是由于 linux vs windows 上的 tmp 文件处理造成的?我会在这里看答案:) github.com/Microsoft/vscode/issues/27101 【参考方案1】:

如果重点是在 vscode 上使用 WSL git,这里是官方解决方案:https://code.visualstudio.com/docs/remote/wsl。

基本上,您只需要安装Remote Development Extension Pack。

【讨论】:

【参考方案2】:

在尝试更多方法时,此解决方案有效:https://github.com/Microsoft/vscode/issues/27101#issuecomment-306994732

整个问题是为 Windows 转换文件的位置。使用诸如链接到那里的脚本 (https://github.com/Milly/wslpath) 和包装脚本将允许消息在 vscode 中正确打开。我个人删除了包装脚本中的 -n 选项,因为我更喜欢选项卡。

【讨论】:

以上是关于VSCode 作为 Windows Subsystem for linux (WSL) 上的 Git 编辑器的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 VS Code (windows) 以使用 Ubuntu App 作为终端

VSCode Go环境搭建 (Windows版)

带有适用于 Linux 的 Windows 子系统的 Windows 10 上的 VSCode 中的 Typescript 构建任务

VS Code - Cygwin 作为集成终端

VS Code - Cygwin作为集成终端

Golang开发环境搭建