@
HENQIGUAI 看了这篇文章,想指出一些问题:
1. 作者看上去分得清什么是终端什么是 shell,但是文章中并没有讲得很清楚。Git Bash 是 Git for Windows 附带的 bash,是 shell,Git for Windows 同时还自带了 mintty 这个终端,这篇文章实际讲的是“Git for Windows 的命令行环境配置”。就像我前面提到的,许多 Windows 用户似乎很容易混淆终端和 shell,我个人在提到这个话题时都喜欢强调一遍。
2. 这套环境其实并不是真正的 Linux,只是看上去像而已。这些程序都是兼容 POSIX API 的,在实现了 POSIX API 的环境下就能运行,Git for Windows 使用了 msys2 作为 POSIX 兼容层。
3. 禁用 SuperFetch 是典型的“我比微软聪明”系列,要是对固态硬盘真的没用,为何微软不禁用掉?没记错的话这个服务的功能是把常用的文件缓存到内存中,内存本来就应该拿来用的,空着反而是浪费。
4. 文章后面提到有些命令没有,然后建议自己去找 exe 然后手动放到 /usr/bin,还建议再去安装个第三方包管理器。可能作者并不知道 Git for Windows 使用的 msys2 就有自带 pacman 包管理器,Git for Windows 其实是 msys2 的修改+阉割版本。
既然有包管理需求,个人建议使用“msys2+Git for Windows 修改过的组件”这套方案。具体可以参考
https://github.com/git-for-windows/git/wiki/Install-inside-MSYS2-proper用了这套方案之后,文章中提到的“管理员身份运行”也没必要了,因为 msys2 默认安装在系统盘根目录,默认是可写的。
为什么不直接使用 msys2,而要加上 Git for Windows 修改过的组件?因为加入了一些我喜欢的特性:比如 msys2 的 HOME 目录是放在 msys2 安装目录下的,不和 Windows 共享,修改过的版本则可以设置成跟 Windows 共享。当然,按照上述文档所说,这个方案是不受 Git for Windows 官方支持的,遇到问题可能会比较麻烦。