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 作为终端
带有适用于 Linux 的 Windows 子系统的 Windows 10 上的 VSCode 中的 Typescript 构建任务