V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lights
V2EX  ›  问与答

请教一下 WSL2 使用 git 的体验

  •  
  •   lights · 2020-10-13 22:52:28 +08:00 · 3445 次点击
    这是一个创建于 1502 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 发布会看得开心呀~

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

    因为 WSL2 访问 Windows 的文件用的 9p 协议,9p 协议当初把我搞得要死要活的,IO 太一般了,甚至用起来感觉还不如用 SMB 。WSL2 听说 IO (指的是 /mnt/c,d,e,f )变得有点差(相比 WSL1 )
    wszgrcy
        7
    wszgrcy  
       2020-10-13 23:34:00 +08:00 via Android
    wsl1 要是支持 docker 就完美了
    lights
        8
    lights  
    OP
       2020-10-13 23:35:36 +08:00
    @wszgrcy #7
    能直接虚拟机解决的问题就不要折腾这种特殊的 linux 环境了,不值得
    brightrystal
        9
    brightrystal  
       2020-10-13 23:38:49 +08:00 via Android
    wsl2 体验真的很棒,搭配 Docker 使用简直爽爆!!!
    brightrystal
        10
    brightrystal  
       2020-10-13 23:39:18 +08:00 via Android
    虚拟机太慢了,根本无法忍受
    thedrwu
        11
    thedrwu  
       2020-10-13 23:39:50 +08:00 via Android
    @Jat001 有区别啊。Windows 原生的不论开不开 core.filemode,总是需要额外操心 chmod 。
    而且 ssh 不方便转发 gpg,虽然
    ysc3839
        12
    ysc3839  
       2020-10-13 23:46:18 +08:00   ❤️ 1
    我选择在 MSYS2 中安装 Git for Windows (注意不是安装 MSYS2 源里面的 git),具体方法可以看 https://github.com/git-for-windows/git/wiki/Install-inside-MSYS2-proper
    同时使用 WSL1,不使用 WSL2 。
    Jaron0608
        13
    Jaron0608  
       2020-10-14 00:03:13 +08:00 via Android   ❤️ 1
    wsl2 /mnt 下的代码,一个 git status 可以慢到让你怀疑人生,具体可见 issue 。建议 wsl1,要 docker 直接服务器吧
    Jaron0608
        14
    Jaron0608  
       2020-10-14 00:15:05 +08:00 via Android   ❤️ 1
    另外,如果 vscode 无法完全解决你编写代码的需求,我觉得 wsl2 可以直接忽视,因为代码到底放不放在 /mnt 下,将是一个特别矛盾的抉择。放:wsl2 命令行的文件操作将极其慢,不放:ide 的 index 等过程将极其慢。
    lights
        15
    lights  
    OP
       2020-10-14 00:23:40 +08:00
    @Jaron0608 #14
    vscode 只是不能完全满足需求,游戏编程的话,代码的智能提示还是得上 VS
    很感谢你的回复
    wszgrcy
        16
    wszgrcy  
       2020-10-14 09:16:39 +08:00 via Android
    @ysc3839 msys2 中 zsh 体验怎么样?我用 cygwin 跑起来,但是补全有问题……并且有进程泄漏的情况
    ysc3839
        17
    ysc3839  
       2020-10-14 13:56:05 +08:00 via Android
    @wszgrcy 我没有使用 zsh,我用的是 bash,似乎没有问题。
    lights
        18
    lights  
    OP
       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
        19
    ysc3839  
       2020-11-05 15:50:00 +08:00 via Android   ❤️ 1
    @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 差不多的,不会更好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   959 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:43 · PVG 06:43 · LAX 14:43 · JFK 17:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.