Git状态需要很长时间才能完成

Mat*_*inn 71 windows git

我正在使用git管理Windows机器上本地目录中的文件 - 这里不涉及网络,我不是推送或拉出另一台机器.我的目录中可能包含100个文件,所有测试文件都非常小.当我跑步时git status,通常需要20-30秒才能完成.这是正常的吗?有什么我可以做的加快速度,或者更好的方式来查看我的存储库的状态(更改的文件,未跟踪的文件等)?其他git命令似乎完成得更快.

Sco*_*ott 113

你试过git gc吗?这清除了git repo中的残余.

  • 对于我的大多数存储库来说,这使我从33秒降低到不到1秒.如果Git会在你开始达到这一点时告诉你这样做会很好.我从来不知道这是必要的. (12认同)
  • 呵呵,我刚刚使用`time`命令运行`git status`并获得了30.464秒的"实际"时间.然后我再次运行`git gc`然后再次'git status`并获得35.409s的实时时间.很奇怪. (4认同)
  • 这似乎已经解决了问题。我很惊讶,尽管仅几次提交,该存储库中就有那么多可以清除的内容-谢谢! (2认同)
  • 当连续多次运行“git status”时,后续运行仅占用第一次运行的一小部分。因此,如果您运行“git status”,然后运行“git gc”,然后再次运行“git status”,预计它将运行得非常快。 (2认同)

Bil*_*ill 12

跑步git fsck过去已经为我解决了这个问题。

  • 这对我有用。可以对此进行更多解释。 (5认同)

180*_*ION 7

您使用的是某种病毒防护软件吗?也许这会干扰事情.git在拥有1000个文件存储库的Windows上,我的速度非常快.


Sar*_*rge 6

在一个类似的问题上,我发现在我现有的git repo下面的目录中有一个git repo会导致大幅减速.

我把辅助git repo移到了其他地方,现在速度很快!


Dan*_*JAB 6

由于某种原因,git status将存储库文件夹移动或复制到新位置后速度特别慢。

在这种情况下,后续运行通常会更快。


the*_*edz 5

你试过重新打包吗?git-repack

否则,尝试复制目录,并删除复制目录中的 .git 文件夹。然后新建一个git目录,看看是不是还慢。

如果它仍然很慢,那么这听起来像是系统或硬件问题。Git 在不到 5 秒的时间内为我完成了数百个文件的状态。


Ari*_*ion 5

我的git status速度非常慢(最多一分钟),因为全局.gitignore文件位于我的 Windows 用户配置文件中,该文件存储在无法访问的网络共享上。

git config --global core.excludesfile
显示出类似的东西\\Nxxxx0\User\Username\Eigene Dateien\gitignore_global.txt

由于某种原因\\Nxxxx0无法访问,我的用户配置文件是从备份系统加载的\\Nxxxxx1。我花了一些时间才弄清楚这一点,因为通常我的用户配置文件通过企业启动脚本绑定到驱动器号,并且访问该驱动器号可以正常工作。我不确定为什么 git-config 使用网络共享而不是驱动器号(可能应该归咎于年轻的我)

设置后
git config --global core.excludesfile $HOME/Eigene\ Dateien/gitignore_global.txt
git status恢复正常速度。


M. *_*ter 5

对我来说,缓慢是由于有很多未跟踪的文件(来自脚本的临时文件和输出文件)。 Running git status -uno,它排除了未跟踪的文件,运行得更快,并且满足我的要求