当前位置: 首页 > 知识库问答 >
问题:

git bash在windows 7 x64上自动完成速度慢

楚流觞
2023-03-14

我有两台机器,git bash auto complete的速度非常慢。当我点击tab键时,可能需要8到10秒才能完成文件名。只有当自动完成是git命令的一部分时,才会出现这种情况。自动完成cd工作正常。git命令的实际执行运行良好。

我正在使用git版本1.8.3-preview20130601

$ git count-objects -vH
count: 9
size: 10.23 KiB
in-pack: 2488
packs: 1
size-pack: 18.68 MiB
prune-packable: 0
garbage: 0
size-garbage: 0 bytes

这是什么引起的?有什么可能的解决办法吗?

编辑:我更新到Git(版本1.8.4-preview20130916),问题仍然存在。我注意到在ConEmu中运行bashshell时,在长时间暂停期间底部显示的命令是uniq。exe。似乎对该可执行文件的调用占用了时间。

编辑:更新到git版本1.9.0。msysgit。0已在很大程度上缓解了问题。延迟现在只有1到2秒。其他命令,如cd仍然几乎是即时的(

共有3个答案

卫博
2023-03-14

这是ConEmu稳定版本的一个已知问题。

从ConEmu页面:

免责声明#2

如果您在执行批处理或命令(从cmd/git/bash/等)时发现延迟,只需升级到最新的alpha版本或取消选中“injectconemuhk”选项。详情请参阅第526期。

祁承嗣
2023-03-14
匿名用户

我仍然有一个问题,缓慢的自动完成git命令只,使用版本1.9.5。在根级别自动完成可能需要8秒,尽管在文件较少的较低级别自动完成更快。

我终于用这里的信息解决了这个问题:https://github.com/msysgit/msysgit/wiki/Diagnosing-why-Git-is-so-slow

通过设置git-config-core。fscache true对于我的存储库,许多命令(如adddiff)的自动完成运行速度更快,但并非所有命令(如rm)。我希望这有帮助。

朱慈
2023-03-14

Git 2.13(2017年第2季度)应该提高Git bash的完成速度,因为大量ref的ref完成速度已经加快,部分原因是放弃了消除歧义的ref,部分原因是消除了“Git for each ref”和“ls remote”与bash完成设施之间的大部分shell处理。

参见SZEDER Gábor(SZEDER)提交的提交227307a、提交745d655、提交fef56eb、提交400a755、提交824388d、提交e8cb023、提交e896369、提交b2b6811、提交3ad8ea7、提交aed3881、提交aa0644f、提交2ea328a、提交15b4a16(2017年3月23日)和提交c977eef(2017年2月3日)
(由Junio C Hamano--gitster于2017年3月30日在commit bf65060中合并)

例如:

修改\uuuu git\u heads()\uuu git\u tags()以及它们拥有的几个调用站点,这样我们就可以让“git for each ref”完成所有艰苦的工作,而这些函数的输出在移交给Bash之前不需要任何进一步的处理或过滤,从而加快分支和标记的完成。以下是在前面的提交中使用的加快REF完成的一些相同技巧,即:

>

  • 扩展这两个函数以接受前缀、当前单词和后缀位置参数,默认情况下所有参数均为可选和空,以保持无参数行为不变。

    为每个ref指定适当的globbing模式到“git”,以仅列出与给定的当前word参数匹配的分支或标记。

    修改每个ref--格式的“git”=

    调整所有调用站点以指定正确的前缀、当前单词和后缀参数,并使用__gitcomp_direct()填充COMPREPLY

    注意:Git 2.18(2018年第2季度)提高了文件名完成的性能:请参阅“Git bash完成文件名支持?”

  •  类似资料:
    • 我正在使用Laravel。自动完成速度很慢。我知道这可能是因为我的数据库有很多信息。我在表中总共有38432行。但是我确信脸书、推特等比我拥有更多。 如何加快自动完成的速度? 这是我的代码: JavaScript:

    • 问题内容: 我正在尝试实现自动补全功能,但是找不到在Swift中可用的示例。下面,我打算转换Ray Wenderlich的自动完成教程 和2010年的示例代码。最后,代码进行了编译,但是没有显示包含可能完成的表格,而且我没有经验来了解为什么它未被隐藏shouldChangeCharactersInRange。 问题答案: 用下面的内容替换您的函数内容。希望对您有帮助。

    • 问题内容: 我希望Eclipse在编写一些变量/类名或关键字时(例如在Flash Develop或Visual Studio中)自动向我建议所有可能的选项。 可能吗? 如果没有,我可以通过哪个Java IDE获得它? 我专门询问一种在键入时 自动 获得与+ 相同的东西的方法。 问题答案: 您还可以将自动完成设置为在键入时自动打开。 转到> > > 并写在外地。 有关更多详细信息,请参见此问题。

    • 问题内容: 如何使用Redis实现自动完成功能? 比如说我有一个数组。当我型我得到 我希望你明白这一点。我如何有效地使用redis命令来实现这一点(如果可能,但我认为是)。如果我能通过telnet尝试一些简单的命令来模仿这种行为,那就太好了。 谢谢 问题答案: 如果您要处理的是大型数据集,建议您考虑将其实现。我将一小部分Ruby做到了这一点: 例如: 在Wikipedia的Tries条目上阅读有关

    • 自动完成是现代网站中经常使用的一种机制,用于向用户提供他/她在文本框中键入的单词开头的建议列表。 然后,用户可以从列表中选择一个项目,该项目将显示在输入字段中。 此功能可防止用户输入整个单词或一组单词。 JQueryUI提供了一个自动完成窗口小部件 - 一个与下拉列表非常相似的控件,但过滤选项只显示与用户在控件中键入的内容相匹配的选项。 jQueryUI提供了autocomplete()方法,用于

    • md-autocomplete是一个Angular Directive,用作一个特殊的输入控件,带有内置下拉列表,显示与自定义查询的所有可能匹配。 一旦用户键入输入区域,该控件就充当实时建议框。 《md-autocomplete》可用于从本地或远程数据源提供搜索结果。 执行查询时md-autocomplete缓存结果。 第一次调用后,它使用缓存的结果来消除不必要的服务器请求或查找逻辑,并且可以禁用