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
命令。这并不理想,但它确实有效。
自 VS Code 1.34(2019 年 4 月)起,引入了远程扩展以开发 WSL:https://code.visualstudio.com/docs/remote/wsl。
基本上,VS Code 的服务器实例启动到 WSL 中,允许您从 Windows.
上的客户端实例使用所有 WSL 工具(例如 git)
感谢您指出这一点!
我想使用 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
命令。这并不理想,但它确实有效。
自 VS Code 1.34(2019 年 4 月)起,引入了远程扩展以开发 WSL:https://code.visualstudio.com/docs/remote/wsl。
基本上,VS Code 的服务器实例启动到 WSL 中,允许您从 Windows.
上的客户端实例使用所有 WSL 工具(例如 git)感谢您指出这一点