问题描述:
- Windows (10/11)
- VSCode v1.78.2
- git: 使用msys2安装的git:
pacman -S git
以上环境,可以在终端环境中正常使用git命令:创建仓库、commit/push等,但是vscode打开一个git仓库文件夹后 左侧标签栏的Source Control
却提示the folder currently open doesn't have a git rep
。
解决方案:
- https://github.com/microsoft/vscode/issues/4651#issue-143290321
- 原因是msys2的git返回的路径为linux风格
/c/path
, 而不是windows风格C:/path
,导致vscode的source control无法识别 - 创建一个git-wrapper.bat, 可以放到msys2的安装目录下,然后在vscode中指定为git-path
"git.path": "E:\\msys2\\msys64\\git-wrap.bat"
, 然后重新打开vscode即可- 注意第二行
chcp 65001
是设置为utf-8编码使这个脚本支持中文路径,因为win默认不是unicode编码,所以需要这行
- 注意第二行
@echo off
chcp 65001 > nul
setlocal
rem If you don't add path for msys2 into %PATH%, enable following line.
rem set PATH=e:\msys2\msys64\usr\bin;%PATH%
if "%1" equ "rev-parse" goto rev_parse
git %*
goto :eof
:rev_parse
for /f %%1 in ('git %*') do cygpath -w %%1