请教一下 WSL2 使用 git 的体验

2020-10-13 22:52:28 +08:00
 lights

git 命令行爱好者,但游戏开发需要用到 Windows 电脑(自己的 mac 本性能不行、公司也是 win 台式机)
目前一直是用 WSL1 + wslgit + windows GUI 客户端(fork) 使用 git

我安装 wsl 唯一的需求几乎就是使用 git 命令行,配合 oh-my-zsh 无敌好用

我平时使用 git 的习惯是命令行 commit 、rebase 等,GUI 看历史、看 diff 、做一些命令行下不好操作的git add --patch操作,尽管频次不多,但这个也是必须用的

最近看到一些 WSL2 的文章,但由于折腾 WSL 下的 git 已经折腾挺久的了,比较熟悉,不知道 WSL2 下的使用体验如何

特来请教一下 WSL2 的情况 git 使用体验如何~(还是很怀念 Mac OS 有原生好用的 shell 环境)

祝大家今晚 Apple 发布会看得开心呀~

3444 次点击
所在节点    问与答
19 条回复
JeromeCui
2020-10-13 22:57:15 +08:00
别折腾,wsl1 非常好,我用了半个月 wsl2 又撤回 wsl1 了
Jat001
2020-10-13 23:01:52 +08:00
用 git 在 winodws 下和 wsl 里有区别吗?
wangkun025
2020-10-13 23:06:09 +08:00
WSL 怎么 GUI 看历史?我一直没搞定这个问题。
Jat001
2020-10-13 23:08:44 +08:00
@wangkun025 #3 wsl 里可以访问 windows 下的磁盘啊,在 /mnt 里
lights
2020-10-13 23:16:10 +08:00
@Jat001 #2
功能上当然没区别啦,只是我个人喜欢命令行,linux 环境的命令行可以安装 oh-my-zsh,体验非常好
Osk
2020-10-13 23:31:21 +08:00
其实这个需求用 git for windows 或者 WSL1 还算可以。

因为 WSL2 访问 Windows 的文件用的 9p 协议,9p 协议当初把我搞得要死要活的,IO 太一般了,甚至用起来感觉还不如用 SMB 。WSL2 听说 IO (指的是 /mnt/c,d,e,f )变得有点差(相比 WSL1 )
wszgrcy
2020-10-13 23:34:00 +08:00
wsl1 要是支持 docker 就完美了
lights
2020-10-13 23:35:36 +08:00
@wszgrcy #7
能直接虚拟机解决的问题就不要折腾这种特殊的 linux 环境了,不值得
brightrystal
2020-10-13 23:38:49 +08:00
wsl2 体验真的很棒,搭配 Docker 使用简直爽爆!!!
brightrystal
2020-10-13 23:39:18 +08:00
虚拟机太慢了,根本无法忍受
thedrwu
2020-10-13 23:39:50 +08:00
@Jat001 有区别啊。Windows 原生的不论开不开 core.filemode,总是需要额外操心 chmod 。
而且 ssh 不方便转发 gpg,虽然
ysc3839
2020-10-13 23:46:18 +08:00
我选择在 MSYS2 中安装 Git for Windows (注意不是安装 MSYS2 源里面的 git),具体方法可以看 https://github.com/git-for-windows/git/wiki/Install-inside-MSYS2-proper
同时使用 WSL1,不使用 WSL2 。
Jaron0608
2020-10-14 00:03:13 +08:00
wsl2 /mnt 下的代码,一个 git status 可以慢到让你怀疑人生,具体可见 issue 。建议 wsl1,要 docker 直接服务器吧
Jaron0608
2020-10-14 00:15:05 +08:00
另外,如果 vscode 无法完全解决你编写代码的需求,我觉得 wsl2 可以直接忽视,因为代码到底放不放在 /mnt 下,将是一个特别矛盾的抉择。放:wsl2 命令行的文件操作将极其慢,不放:ide 的 index 等过程将极其慢。
lights
2020-10-14 00:23:40 +08:00
@Jaron0608 #14
vscode 只是不能完全满足需求,游戏编程的话,代码的智能提示还是得上 VS
很感谢你的回复
wszgrcy
2020-10-14 09:16:39 +08:00
@ysc3839 msys2 中 zsh 体验怎么样?我用 cygwin 跑起来,但是补全有问题……并且有进程泄漏的情况
ysc3839
2020-10-14 13:56:05 +08:00
@wszgrcy 我没有使用 zsh,我用的是 bash,似乎没有问题。
lights
2020-11-05 10:58:16 +08:00
@ysc3839 #12
嗨你好,我这边 WSL1 下 git 会遇到 filemode 和 eol 的问题,加上 git svn 性能很差,打算尝试一下 MSYS2 下的 git svn 性能如何

但在 MSYS2 下安装 git for windows 遇到了一些意料之外的问题

```
错误:无法从 wingit.blob.core.windows.net : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds 获取文件 'bash-4.4.023-1-x86_64.pkg.tar.xz'
```

另外,也想请教一下 MSYS2 安装后,有三个启动程序 mingw32.exe mingw64.exe msys2.exe
用哪一个能获得比较高的 git for windows 的性能啊

我目前的需求是一个 3w+ commit 的 svn 仓库,我想用 git svn 命令来与它交互
原生的 git for windows 的 git svn 性能很差,自动补全不好用,而且还会闪屏
换 MSYS2 目前感觉不会闪屏、自动补全也更友好,就是不知道性能会不会好一些
ysc3839
2020-11-05 15:50:00 +08:00
@lights 那个错误是网络问题,大概是下载速度太慢了,包管理器主动停止了。

用 mingw64 的最快。这个问题 Git for Windows 的 wiki 有说,如果你用 msys2 的 git,fork 那些都是模拟的,性能很差。而 Git for Windows 的 git 则不完全依赖 msys2,启新进程那些好像是改用 posix_spawn 之类的在 Windows 上有原生功能对应的函数,性能会好很多。
https://github.com/git-for-windows/git/wiki/The-difference-between-MINGW-and-MSYS2

不过再怎么样性能还是跟 Git for Windows 差不多的,不会更好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/714643

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX