Git Auto Correct

Git

在 Git 中,如果输错了一个命令,Git 会给出相应的提示。比如,如果输入 git stattus,那么会有如下的输出:

git: 'stattus' is not a git command. See 'git --help'.

The most similar command is
        status

除了报错之外,Git 也给出了可能的正确答案。需要注意的是,不仅仅是 Git 自身的命令,所有配置的 Alias 也可以享受同样的待遇。比如,假设已经设置了一个 delbranch 的 Alias,那么在输入 git dlbranch 之后,也会得到如下的输出:

git: 'dlbranch' is not a git command. See 'git --help'.

The most similar command is
        delbranch

一个很直观的想法是:既然 Git 可以计算出可能的正确输入是什么,那么直接让 Git 执行那个结果,就可以避免一次重新输入了。

根据 Git 给出的文档,可以通过类似如下的配置,来打开自动纠错的功能:

[help]
    autocorrect = 30

根据 Git 文档的描述,上面提到的 30 配置,是“三秒”的意思。也就是说,配置之后,Git 会给用户三秒的时间反悔,否则就会执行(可以通过 Ctrl+C 阻止纠错被自动执行)。输出如下:

WARNING: You called a Git command named 'stattus', which does not exist.
Continuing in 3.0 seconds, assuming that you meant 'status'.

另,The Fuck 也是一个类似思路的 Bash 自动纠错解决方案,避免重复输入。