Jak mogę zmusić gita do wykonania sugestii „czy miałeś na myśli”?

120

Piszę

git puhs

I git mówi:

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

Did you mean this?
      push

Jakie jest ustawienie konfiguracyjne, aby git po prostu wykonał sugerowane polecenie, jeśli ma tylko jedną sugestię?

krosenvold
źródło

Odpowiedzi:

150

Zgodnie z git-config (1) , chcesz help.autocorrectodpowiednio ustawić . Na przykład git config --global help.autocorrect 5sprawi, że odczeka pół sekundy przed uruchomieniem polecenia, abyś mógł najpierw zobaczyć komunikat.

jamessan
źródło
27
Jeśli ustawisz ją na liczbę ujemną, zrobi to bezpośrednio.
Alper
8
Czy istnieje sposób na wyświetlenie zachęty gita przed poprawką, podobnie jak w przypadku zsh? (np. „popraw 'puhs' na 'pchanie' [yn]?”)
Achal Dave
4
@AchalDave Prawdopodobnie jest, jeśli napiszesz kod, aby to zrobić i prześlesz poprawkę / gałąź do gitludzi, aby została zaakceptowana do bazy kodu. Obecnie to tak nie działa ...
twalberg
1
Wydaje się, że działa, jeśli istnieje dokładnie jedno polecenie kandydata. Na przykład git statnic nie robi nawet po użyciu Twojej sugestii, ponieważ ma wielu kandydatów. Jakieś sugestie, jak sprawić, by wybrał pierwszą?
gokul_uf
25

Autokorekta jest fajna, ale moje ja z OCD potrzebuje trochę więcej kontroli nad tym, co się dzieje. Tak więc napisałem prosty skrypt, który po prostu wybiera pierwszą sugestię dostarczoną przez git. Uruchamiasz skrypt po nieudanym poleceniu i używasz wbudowanej składni podstawiania historii bash „bang bang”. Ponadto, jeśli piszesz coś, co może mieć więcej niż jedno polecenie, to polecenie pozwala wybrać inną opcję niż pierwsza.

Wyglądałoby to mniej więcej tak,

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)

Poza tym fajnie jest pisać cokolwiek za pomocą dwóch wykrzykników. Więc premia za to.

Tutaj jest streszczenie mojego scenariusza

Ben
źródło
1
Szczerze mówiąc, pisanie git pushjest szybsze niż pisanie idid !!. Ale w innych przypadkach ten skrypt by się przydał :)
theonlygusti
18

Alternatywą dla help.autocorrect: jeśli ciągle popełniasz te same literówki, możesz utworzyć dla nich aliasy w swoim pliku .gitconfig

[alias]
    puhs = push

(Robię to również z aliasami powłoki, gdzie nigdy nie wydaje mi się, żebym mkae^H^H^H^Hmakepoprawnie wpisał.)

bstpierre
źródło
17

Spójrz także thefuck

Może poprawiać literówki, a także wykonywać sugestie. Nie ogranicza się tylko do gita.

manojlds
źródło
Używam fuckkomendy od 2 lat, stała się jedną z moich modyfikacji terminala "nie mogę bez niej żyć" !!
Noah Sussman