git:哈希自动完成

tak*_*hin 9 git bash ubuntu autocomplete

是否有机会配置git为在按下时自动完成哈希TAB

编辑:

请注意,此问题与自动完成无关,但与哈希自动完成有关.请参阅我对VonC答案的评论.

Eri*_*got 12

您只能通过前几个字符来引用提交:git将在内部自动完成:

git checkout 9771
Run Code Online (Sandbox Code Playgroud)

因此,您实际上不必输入完整的哈希值!

  • 您只需要使哈希明确无误的最小字符数(给定您的修订哈希列表).因此,使用单个提交,只需要1个字符,等等.在16次提交之后,在16*16 = 256次提交,3个字符等之后,您将需要至少2个字符.因此,对于具有大约1000次提交的项目,我猜想大多数时候4个字符应该足够了. (3认同)
  • PS:如果git发现第一个数字不明确,它会告诉你,所以不存在直接知道需要多少位数的风险. (2认同)

Von*_*onC 2

如果您必须考虑存储库中的所有哈希值,则这是不可能的,因为它无法很好地扩展(如果您有数百个提交、标签……每个都有自己的哈希值,这将很快需要很长时间才能完成)列出所有这些,除非您有一些用于此哈希列表的缓存系统)

如果将哈希值限制为最近的列表(例如在当前分支上),则可能是这样,但这不会涵盖所有用例。

这里有一个 git shell 的示例,它具有不同类型的 if 选项卡扩展(在 PowerShell 中),在此处进一步增强
即使您的环境没有使用 PowerShell,这也会给您提供“选项卡扩展”实现的想法。