Git Bash 的 ln -s 无法创建软链接

2026-01-16 12:43

在 Windows 中创建软链接,我一般都是在 PowerShell 中执行这个命令:

New-Item -ItemType SymbolicLink -Path "Path to target" -Target "Path to source" -Force

但这个命令太长了,而且先写目标,再写源的这个命令顺序非常不自然。

于是我尝试在 Git Bash 中用 ln -s命令,这个命令很简短,先源再到目标的这个顺序也让我感到舒服:

ln -s /path/to/source /path/to/target

我运行这个命令,成功了。但没过多久,我感到不对劲,因为我偶然发现对源文件的修改,没有同步到目标文件中,两者就好像毫无关联一般。

针对这个问题,我认真测试了ln -s命令,运行之后,分别对源文件和目标文件进行修改,对照着观察变化。结果就是,它没有创建软链接,而是直接复制了一份源文件。

这个结果让我感到意外,我猜测可能是兼容性问题。

在网上调研后发现,这是一个常见的坑。Git Bash 中创建软链接要用 mklink 替代,或配置 core.symlinks或开启Developer Mode……我觉得这个也好麻烦啊,干脆继续使用 PowerShell 命令。