Skip to content

v0.1.1 - auto-locate Git Bash

Choose a tag to compare

@Fishquito7 Fishquito7 released this 20 Sep 14:19
· 3 commits to main since this release

v0.1.1 — 自动定位 Git Bash

修复

  • 不再假设 Git 装在 C:\Program Files\Git。 Git for Windows 的安装位置因安装方式与用户习惯而异(机器级 / 用户级 / scoop / chocolatey),现在按多级解析链自动定位:
    1. 行 config 的 bashPath
    2. 环境变量 DSH_GIT_BASH
    3. 注册表 HKLM / HKCU 下 SOFTWARE\GitForWindows 的 InstallPath(与安装位置无关的权威来源)
    4. %ProgramFiles%\Git\bin、%ProgramFiles(x86)%、%ProgramW6432%
    5. %LOCALAPPDATA%\Programs\Git\bin(用户级安装默认位置)
    6. scoop、chocolatey
    7. PATH:各项下的 bash.exe,以及 git.exe 同级的 ..\bin\bash.exe(Git 安装器默认只把 Git\cmd 放进 PATH,从不放 Git\bin)
  • 显式指定的路径会被校验:bashPath / DSH_GIT_BASH 指向不存在的文件时,报出可操作的错误,而不是裸 ENOENT 崩溃。
  • 找不到时不会退到 WSL 的 bash(另一个内核里的 Linux 进程,语义不对),而是列出所有尝试过的路径。
  • 挂载时记录实际使用的 bash.exe,便于排查。

升级(重要)

pnpm 不会重新拉取同名依赖,必须先移除再安装:

dsh plugin --profile web remove dsh-git-bash
dsh plugin --profile web add "https://github.com/Fishquito7/dsh-gitbash/releases/latest/download/dsh-git-bash.tgz"

然后重启 DSH。

资产

  • dsh-git-bash-0.1.1.tgz —— 带版本号,便于归档与校验
  • dsh-git-bash.tgz —— 稳定别名,已更新为 0.1.1;README 里的在线安装命令始终指向它

追加修复(同版本内更新)

  • 解析结果只在进程内缓存一次,但每次使用前都会复核:如果 Git 被卸载、搬到别处或路径失效,会自动重新走一遍解析链;解析到新位置就继续用,解析不到才报错。
  • 报错会指出「之前用的那条路径已经不存在」,并列出这次尝试过的全部候选,而不是裸 ENOENT。