Wie kann ich Git dazu bringen, den Vorschlag "Meinten Sie" zu machen?

120

Ich tippe

git puhs

Und git sagt:

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

Did you mean this?
      push

Was ist die Konfigurationseinstellung, damit git nur den vorgeschlagenen Befehl ausführt, wenn es nur einen Vorschlag gibt?

Krosenvold
quelle

Antworten:

150

Laut git-config (1) möchten Sie help.autocorrectentsprechend einstellen . git config --global help.autocorrect 5Warten Sie beispielsweise eine halbe Sekunde, bevor Sie den Befehl ausführen, damit Sie die Nachricht zuerst sehen können.

Jamessan
quelle
27
Wenn Sie eine negative Zahl festlegen, erfolgt dies direkt.
Alper
8
Gibt es eine Möglichkeit, git vor dem Korrigieren aufzufordern, ähnlich wie bei zsh? (zB "richtige 'Puhs', um [yn] zu 'pushen'?")
Achal Dave
4
@AchalDave Es gibt wahrscheinlich eine Möglichkeit, wenn Sie den Code dazu schreiben und den Patch / Zweig an die gitLeute senden , damit er in die Codebasis aufgenommen wird. Derzeit funktioniert es nicht so ...
Twalberg
1
Dies scheint zu funktionieren, wenn es genau einen Kandidatenbefehl gibt. Zum Beispiel wird git statauch nach Verwendung Ihres Vorschlags nichts unternommen, da er mehrere Kandidaten hat. Irgendwelche Vorschläge, wie man es dazu bringt, das erste zu wählen?
gokul_uf
25

Die Autokorrektur ist nett, aber mein OCD-Selbst braucht etwas mehr Kontrolle darüber, was los ist. Also habe ich ein einfaches Skript geschrieben, das nur den ersten Vorschlag von git auswählt. Sie führen das Skript nach dem fehlgeschlagenen Befehl aus und verwenden die integrierte Bash-History-Ersetzungssyntax "bang bang". Wenn Sie etwas eingeben, das möglicherweise mehr als einen Befehl enthält, können Sie mit diesem Befehl einen anderen als die erste Option auswählen.

Es würde ungefähr so ​​aussehen,

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)

Außerdem macht es Spaß, etwas mit zwei Ausrufezeichen einzugeben. Also Bonus dafür.

Hier ist ein Kern meines Skripts

Ben
quelle
1
Um ehrlich zu sein, ist das Tippen git pushschneller als das Tippen idid !!. Aber in anderen Fällen wäre dieses Skript nützlich :)
theonlygusti
18

Alternativ zu help.autocorrect: Wenn Sie immer dieselben Tippfehler machen, können Sie Aliase für diese in Ihrer .gitconfig-Datei erstellen

[alias]
    puhs = push

(Ich mache das auch mit Shell-Aliasen, bei denen ich nie mkae^H^H^H^Hmakerichtig schreiben kann .)

bstpierre
quelle
17

Schauen Sie sich auch an thefuck

Es kann Tippfehler korrigieren und auch Vorschläge ausführen. Nicht nur auf Git beschränkt.

manojlds
quelle
Ich benutze den fuckBefehl seit 2 Jahren. Er ist zu einer meiner Terminalmodifikationen geworden, bei denen ich nicht ohne ihn leben kann.
Noah Sussman