Bagaimana cara membuat git melakukan saran "yang Anda maksud"?

120

saya mengetik

git puhs

Dan git mengatakan:

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

Did you mean this?
      push

Apa pengaturan konfigurasi untuk membuat git hanya melakukan perintah yang disarankan jika hanya memiliki satu saran?

krosenvold.dll
sumber

Jawaban:

150

Menurut git-config (1) , Anda ingin menyetel dengan help.autocorrecttepat. Misalnya, git config --global help.autocorrect 5akan membuatnya menunggu setengah detik sebelum menjalankan perintah sehingga Anda dapat melihat pesannya terlebih dahulu.

jamessan
sumber
27
Jika Anda menyetelnya ke angka negatif, ia melakukannya secara langsung.
Alper
8
Apakah ada cara untuk membuat git prompt sebelum mengoreksi, mirip dengan zsh? (misalnya, "mengoreksi 'puhs' menjadi 'push' [yn]?")
Achal Dave
4
@AchalDave Mungkin ada, jika Anda menulis kode untuk melakukan itu dan mengirimkan patch / cabang ke gitorang - orang agar diterima ke dalam basis kode. Saat ini, tidak bekerja seperti itu ...
twalberg
1
Ini tampaknya berfungsi jika hanya ada satu perintah kandidat. Misalnya, git stattidak melakukan apa-apa bahkan setelah menggunakan saran Anda karena memiliki banyak kandidat. Adakah saran tentang bagaimana membuatnya memilih yang pertama?
gokul_uf
25

Koreksi otomatisnya bagus, tetapi saya sendiri yang mengalami OCD perlu sedikit lebih mengontrol apa yang terjadi. Jadi, saya menulis skrip langsung yang hanya memilih saran pertama yang diberikan oleh git. Anda menjalankan skrip setelah perintah gagal dan menggunakan sintaks "bang bang" substitusi riwayat bash bawaan. Selain itu, jika Anda mengetik sesuatu yang mungkin memiliki lebih dari satu perintah, perintah ini memungkinkan Anda memilih satu selain opsi pertama.

Ini akan terlihat seperti ini,

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)

Selain itu, menyenangkan untuk mengetik apa saja dengan dua tanda seru. Jadi bonus untuk itu.

Inilah inti dari skrip saya

Ben
sumber
1
Sejujurnya, mengetik git pushlebih cepat daripada mengetik idid !!. Tetapi dalam kasus lain skrip ini akan berguna :)
theonlygusti
18

Sebagai alternatif dari help.autocorrect: jika Anda membuat kesalahan ketik yang sama sepanjang waktu, Anda dapat membuat alias untuk mereka di file .gitconfig Anda

[alias]
    puhs = push

(Saya melakukan ini dengan alias shell juga, di mana saya sepertinya tidak pernah bisa mengetik mkae^H^H^H^Hmakedengan benar.)

bstpierre.dll
sumber
17

Lihat juga thefuck

Itu dapat memperbaiki kesalahan ketik, dan juga melakukan saran. Tidak hanya terbatas pada git.

manojlds
sumber
Saya telah menggunakan fuckperintah selama 2 tahun sekarang, ini telah menjadi salah satu modifikasi terminal "tidak dapat hidup tanpanya" !!
Noah Sussman