どうすれば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

1つの提案しかない場合にgitが提案されたコマンドを実行するための構成設定は何ですか?

回答:


150

git-config(1)によると、help.autocorrect適切に設定したいとします。たとえばgit config --global help.autocorrect 5、コマンドを実行する前に0.5秒待機するので、最初にメッセージを確認できます。


27
負の数に設定すると、直接行われます。
Alper、2012

8
zshのように、修正前にgitプロンプトを表示する方法はありますか?(例:「正しい 'puhs'から 'push' [yn]?」)
Achal Dave

4
@AchalDaveおそらく、それを行うためのコードを記述し、パッチ/ブランチをgit人々に提出して、コードベースに受け入れられるようにする場合があります。現在、そのようには機能しません...
twalberg

1
これは、候補となるコマンドが1つしかない場合に機能するようです。たとえば、git stat候補は複数あるため、候補を使用しても何も起こりません。最初のものを選択させる方法について何か提案はありますか?
gokul_uf 2018

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)

さらに、2つの感嘆符を使用して何かを入力するのは楽しいです。そのためのボーナス。

これが私のスクリプトの要点です


1
正直なところ、タイピングgit pushはタイピングよりも高速ですidid !!。しかし、他の場合では、このスクリプトは役に立ちます:)
theonlygusti 2017年

18

help.autocorrectの代わりとして:常に同じタイプミスをする場合、.gitconfigファイルでそれらのエイリアスを作成できます

[alias]
    puhs = push

(私はこれをシェルエイリアスでも行いますが、mkae^H^H^H^Hmake正しく入力できないようです)。


17

また、見てください thefuck

タイプミスを修正し、提案を実行することもできます。gitだけに限定されません。


私はfuck2年間コマンドを使用していますが、それは私の「それなしでは生きられない」端末の変更の1つになりました!!
Noah Sussman、2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.