Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Windows上的分支签出速度如此之慢,而Linux上的分支签出速度如此之快?_Linux_Git_Git Branch_Git Submodules_Git Checkout - Fatal编程技术网

为什么Windows上的分支签出速度如此之慢,而Linux上的分支签出速度如此之快?

为什么Windows上的分支签出速度如此之慢,而Linux上的分支签出速度如此之快?,linux,git,git-branch,git-submodules,git-checkout,Linux,Git,Git Branch,Git Submodules,Git Checkout,我得到了一个包含多个子模块的git存储库,在我的Windows10Build15063上获得了糟糕的性能,而在我的LinuxMint18Sarah上,一切都像光速一样快 在Windows和Linux上使用Smartgit客户端,我可以在test分支上进行签出,但在Windows计算机上完成此过程需要3分钟: Check Out Branch D:\SublimeText\Data\Packages> git.exe checkout test Switched to bra

我得到了一个包含多个子模块的git存储库,在我的Windows10Build15063上获得了糟糕的性能,而在我的LinuxMint18Sarah上,一切都像光速一样快

在Windows和Linux上使用
Smartgit
客户端,我可以在
test
分支上进行签出,但在Windows计算机上完成此过程需要3分钟:

Check Out Branch
    D:\SublimeText\Data\Packages> git.exe checkout test
    Switched to branch 'test'
    D:\SublimeText\Data\Packages\Default Syntax> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Force Rewrite Sublime Settings> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Side-by-Side Settings> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Overwrite Commit Completion> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Sublime Text Studio> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\MarkdownLight> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Fixed Selections Clear> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\SublimeCodeIntel> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Open Auto Completion> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\amxmodx> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Shell Script> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Notepad++ Color Scheme> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\LaTeXTools> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\.versioning> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Toolbar> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\BBCode> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Select All Spelling Errors> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Markdown to BB Code Converter> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\All Autocomplete> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Package Control> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\AutoFileName> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\SQL Keyword Uppercase> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Fix Project Switch Restart Bug> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Indent and braces> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Override Unpacked Packages> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\GotoLastEditEnhanced> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\PowerCursors> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\FuzzyFilePath> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Clear Cursors Carets> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\ANSIescape> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Preferences Editor> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\BufferScroll> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\PackageDev> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Clipboard Scope Copy> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\SideBarEnhancements> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\View Settings Freely> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Fix Selection After Indent> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Amxx Pawn> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\SublimeREPL> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\SyncedSideBar> git.exe fetch --progress --prune --recurse-submodules=no origin
    D:\SublimeText\Data\Packages\Active View Jump Back> git.exe fetch --progress --prune --recurse-submodules=no origin
否则,在Linux机器上,使用相同的存储库,我可以在
测试
分支上进行签出,大约需要5秒钟:

Check Out Branch
    ~/.config/sublime-text-3/Packages> git checkout test_linux
    Switched to branch 'test'
是否可以使Windows上的git签出速度与Linux上的git签出速度一样快

我发现了另一个问题,但我不明白它是否适用于这里:


  • 更新 在评论之后,我发现在windows上从命令行运行git并键入
    git checkout test
    与在linux上一样快

    现在我必须改变这个问题,问为什么Smartgit Windows客户端做得这么慢,而Linux客户端做不到


    如何在Windows Smartgit客户端上禁用此慢速签出,以及会产生什么后果?

    Smartgit似乎会执行一系列git.exe命令,每个命令都必须生成一个bash会话(生成/启动新shell的速度很慢)。
    有关详细信息,请参阅“”


    如果在git bash会话中执行相同的操作,那么所有这些命令(用于每个子模块签出)都可以重用当前的shell会话:速度要快得多,即使是在Windows上。

    您的smargit客户端似乎不仅在您的repo上执行签出,而且还执行recursiv fetch,而linux上的git只执行签出本身。访问git存储库的硬件和方法是否都相同?linux是一个在Windows内运行的虚拟机我做了相同的测试。因此,从理论上讲,虚拟环境下的Linux应该会稍微慢一点,但速度要快得多。是的,但我猜您在Linux上不使用smartgit客户端,是吗?你试过使用普通的吗?我在Windows和Linux上都使用Smartgit客户端。谢谢@derHugo,我刚刚在windows上打开命令行,输入了
    git checkout test
    ,速度和linux上一样快。现在我必须改变这个问题,问为什么Smartgit Windows客户端做得这么慢,而Linux客户端做不到。