我怎样才能使git做“你的意思”建议?


120

我输入

git puhs

git说:

kristian@office:~/myrepo$ git puhs
git: 'puhs' is not a git command. See 'git --help'

Did you mean this?
      push

如果git只有一个建议,那么git只执行建议的命令的配置设置是什么?

Answers:


150

根据git-config(1),您要进行help.autocorrect适当的设置。例如,git config --global help.autocorrect 5将使它等待半秒后再运行命令,以便您可以首先看到该消息。


27
如果将其设置为负数,它将直接执行。
Alper 2012年

8
有没有一种方法可以使git在更正之前提示,类似于zsh?(例如,“将'puhs'正确地'推送'[yn]吗?”)
Achal Dave

4
@AchalDave如果您编写代码来执行此操作,然后将补丁/分支提交给git人们以使其接受到代码库中,则可能是这样。目前,这种方式不起作用...
twalberg

1
如果只有一个候选命令,这似乎起作用。例如,git stat即使使用了您的建议,也没有执行任何操作,因为它有多个候选对象。关于如何使其选择第一个的任何建议?
gokul_uf

25

自动更正很好,但是我的OCD-self需要对发生的事情进行更多控制。因此,我写了一个简单的脚本,只选择了git提供的第一个建议。您可以在失败的命令之后运行脚本,并使用内置的bash历史记录替换“ bang bang”语法。另外,如果键入的内容可能具有多个命令,则可以使用该命令选择第一个选项以外的其他选项。

看起来像这样,

kristian@office:~/myrepo$ git puhs
git: 'puhs' is not a git command. See 'git --help'

Did you mean this?
      push

kristian@office:~/myrepo$ idid !!
Counting objects: 18, done.
Delta compression using up to 32 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 1.17 KiB, done.
Total 10 (delta 6), reused 0 (delta 0)

另外,键入带有两个感叹号的任何内容都很有趣。因此,这是奖金。

这是我的脚本要点


1
不过,老实说,打字git push比打字快idid !!。但在其他情况下,该脚本将很有用:)
theonlygusti

18

作为help.autocorrect的替代方法:如果您始终都输入相同的错字,则可以在.gitconfig文件中为其创建别名。

[alias]
    puhs = push

(我也使用shell别名来执行此操作,因为我似乎永远无法mkae^H^H^H^Hmake正确键入。)


17

也看看 thefuck

它可以纠正错别字,也可以执行建议。不仅限于git。


我使用fuck命令已有两年了,它已成为我的“没有它就无法生存”的终端修改之一!
诺亚·萨斯曼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.