VSCode:对 Windows 使用 WSL Git 而不是 Git

VSCode: use WSL Git instead of Git for Windows

我想使用 WSL(Bash on Windows)Git 和 VSCode 而不是 Git 用于 Windows 以避免多个 Git 安装。

我创建了一个简单的 bat 脚本,通过在 WSL 中重定向 git 命令来模拟 git.exe 行为。它在 CMD 中运行良好,但在 VSCode 中运行不佳。此外,WSL 是我在 VSCode.

中的默认终端

VSCode settings.json:

{
    "git.path": "D:\tools\git.bat",
    "terminal.integrated.shell.windows": "C:\Windows\Sysnative\bash.exe"
}

git.bat:

@echo off
bash -c 'git %*'

有什么想法可以让 VSCode 使用 WSL Git 吗?

提供 bash exec 的完整路径:

git.bat :

@echo off
c:\windows\sysnative\bash.exe -c "git %*"

我创建了一个小工具来为自己解决这个问题,hosted it on GitHub

基本 git 功能似乎可用,例如查看更改和提交。

可以下载现成的二进制文件 from the Releases page

其中一个问题是输入路径需要从 Windows 表示形式 (C:\Foo\Bar) 转换为 WSL 中的 Linux 路径 (/mnt/c/Foo/Bar) ,然后返回 git.

输出中的路径

例如VSCode中的Git插件使用命令

git rev-parse --show-toplevel

找到 git 存储库的根目录,但是对于 WSL git 这当然 returns 一个 Linux 需要翻译的路径 VSCode 在 Windows.

您可以先尝试 wslpath,如果失败,您可以尝试使用普通的 git 命令。这并不理想,但它确实有效。

参见:Use WSL git inside VS Code from Windows 10 17046

自 VS Code 1.34(2019 年 4 月)起,引入了远程扩展以开发 WSL:https://code.visualstudio.com/docs/remote/wsl

基本上,VS Code 的服务器实例启动到 WSL 中,允许您从 Windows.

上的客户端实例使用所有 WSL 工具(例如 git)

感谢您指出这一点