我们有一个非常大的项目,总共有近 15,000 次提交。我使用 WSL 在 Windows 计算机上运行 Debian 9.3
。我的 git 版本是 2.17.0。
当我运行 git status
等命令时,至少需要 20 秒才能完成。即使没有进行任何更改。
我尝试过多个旧版本的 git,甚至尝试过 Ubuntu,但仍然遇到相同的结果。我尝试过在这里和其他网站上的各种帖子中运行一堆命令,但没有一个起作用。
有趣的事情:当我在 Windows 上打开 cmd.exe
或 Git Bash 时,运行 git status
只需要不到一秒的时间。
这可能是什么原因造成的?我可以做什么来解决这个问题?
最佳答案
2019 年 6 月更新:WSL 2 is coming ,并具有完整的系统调用兼容性。
这应该会显着提高 Git 命令性能!
2018 年原始答案:
Git 在没有任何中间层的主机上执行时效果最佳。
例如,如果您的存储库位于共享文件夹上,Git 的速度会相当慢。
在 WSL 的情况下,存储库是在本地访问的,但通过 filesystem translation各种Linux文件系统操作到NT内核操作之间。
这足以解释性能下降的原因,尤其是在大型 Git 存储库上
另外,请确保您的 $PATH
不会引用包含 Windows 可执行文件的文件夹,这些文件夹可能会被调用,而不是 Linux 可执行文件
可能的原因:
- 文件系统模拟(慢):WSL issue 2759
- Shell Prompt :确保在基本的 shell 提示符下测试您的命令,而不需要任何复杂的
PS1
计算 - Windows Defender AV :尝试从 AV 扫描中排除(用于测试)WSL 管理的文件系统。
关于git - 对于大型项目来说,在 WSL 上的 Debian 和 Ubuntu 上运行 git 命令非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50231989/