Pytanie "Git" z Homebrew, który nie korzysta z ukończenia


Kiedy używam gita OSXa, po modyfikacji pliku mogę to zrobić git commit <tab>, a to automatycznie uzupełni nazwę pliku do zmodyfikowanej. Jeśli jednak zainstaluję nowszą wersję git z homebrew i używam jej, funkcja ta przestaje działać (czyli naciskam <tab> i po prostu "pyta" mnie, jaki plik chcę zrobić, nawet te, które nie mają żadnych zmian).

Czy ktoś może rzucić trochę światła na to, dlaczego i jak rozwiązać ten problem? Wolałbym używać gitarzysty homebrew, ponieważ jest bardziej aktualny.

Moja powłoka to zsh, i żadna z instalacji bash-completion lub zsh-completions pracował (nawet po przeczytaniu instrukcji homebrew po instalacji).

Również po zainstalowaniu gita z homebrew mówi

Bash completion has been installed to: /usr/local/etc/bash_completion.d
zsh completion has been installed to: /usr/local/share/zsh/site-functions

Czy nie powinienem móc użyć jednego z nich?


108
2018-02-20 01:24


pochodzenie


Jaka wersja zsh i git czy używasz? - simont
Najnowsze z homebrew. zsh 5.0.2 i git 1.8.1.3 - user137369
Zrób inne git praca z uzupełnieniami (git co<TAB> ==> git commit, na przykład)? - simont
Tak. Te działają. - user137369
Podejrzewam, że kilka różnych problemów kończy się tutaj, ale zainstalowanie gita przez napar naprawił to dla mnie. Wydaje się zsh-completions nie był zadowolony z mac gita, choć działało to dobrze wcześniej (prawdopodobnie zaktualizowane na ślepo do 0.17.x). - ti7


Odpowiedzi:


Szukasz:

brew install git bash-completion

Jak stwierdza komentarz Warpc, musisz dodać następujące elementy do swojego ~/.bash_profile uzyskać działanie bash-completion w homebrew:

if [ -f $(brew --prefix)/etc/bash_completion ]; then
    . $(brew --prefix)/etc/bash_completion
fi

Powyższe jest wymienione w zastrzeżeniach po zainstalowaniu formuły bash-completion.


212
2018-02-20 01:47



Moja powłoka to zsh. Czy to oznacza, że ​​powinienem zrobić brew install git zsh-completions? Również po zainstalowaniu gita z homebrew mówi Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completion has been installed to: /usr/local/share/zsh/site-functions, więc nie mogłem użyć jednego z nich? - user137369
Ani instalacja bash-completion lub zsh-completions pracował (nawet po wykonaniu instrukcji homebrew po instalacji). - user137369
Czy uruchomiłeś ponownie swój terminal? - Graham Perks
Czy dodałeś również ~ / .bash_profile dla przypadku basha tę zawartość: if [-f $ (brew --prefix) / etc / bash_completion]; następnie . $ (brew --prefix) / etc / bash_completion fi - warpc
Mam już zainstalowany git bez warzenia. Teraz chcę zainstalować bash_completion używając brew. Uruchomiłem bash-completion instalacji parzenia i dodałem powyższy kod, ale bez powodzenia - MagePsycho


To zakończenie polecenia get git działa na systemie OSX bez konieczności restartowania terminalu:

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash && echo "source ~/.git-completion.bash" >> ~/.bash_profile && source ~/.bash_profile

81
2018-01-24 19:25



To trochę oszustwo, aby nazwać go jednolinijkowym podczas używania &&. Każdy skrypt basha może być takim liniowcem. - user137369
To faktycznie działa! Dzięki! - kodisha
Jesteś prawdziwym MVP! - heez
Zdecydowanie lepiej niż brew install metoda. Po prostu dlatego, że działa. - dchayka
Szukałem wielu godzin, szukając odpowiedzi na pytanie, dlaczego bash nie odbiera poleceń git-completion. W końcu to zadziałało! Dziękuję bardzo! - TheAmazingKnight


z jakiegoś powodu zaginąłam w pliku $(brew --prefix)/etc/bash_completion więc poprawna odpowiedź @Grahama Perksa nie działała dla mnie

Doprowadziło to do rozwiązania w moim przypadku:

brew unlink bash-completion
brew link bash-completion

18
2017-07-02 11:50



Po naśladowaniu @ Graham Pixela, to w końcu sprawiło, że wok dla mnie. - Luke
To również zadziałało dla mnie z Homebrew 1.6.0, git 2.17.0 (hub 2.2.9) i bash-completion 1.3 na OS X Sierra 10.12.6. - jared


Na wypadek, gdyby ktoś inny popełnił mój głupi błąd, spróbuj brew install git. Używałem git który pochodzi z Xcode i nie zdawałem sobie sprawy, że nigdy nie zainstalowałem gitarzysty Homebrew, aby uzyskać autouzupełnianie.


10
2017-12-20 21:00





Rozwiązałem problem, odkrywając to $(brew --prefix)/etc/bash_completion zwrócony Permission denied po wykonaniu. Więc po prostym:

chmod +x $(brew --prefix)/etc/bash_completion

Wszystko działa dobrze. Zastanawiam się, dlaczego Homebrew nie robi bash_completion plik wykonywalny podczas instalacji.


8
2017-08-18 22:33



Nie, to jest złe. bash_completion Ma być sourceTak więc definicje są w twojej skorupie; wykonanie nie przyniesie efektu. - toddkaufmann
@toddkaufmann, w rzeczy samej. Masz rację. - Asbjørn Ulsberg


Znaleziono działające rozwiązanie. Jest bardzo aktualny (autor 16 godzin temu i popełniono go 2 godziny temu) i przychodzi bezpośrednio z homebrew.

brew install git --without-completions

Po prostu wypróbowałem i w końcu działa zgodnie z przeznaczeniem.


4
2018-03-02 21:09



Nie widzę sposobu instalacji git bez ukończenia może poprawić sytuację zakończenia nie działa. Wierzę, że odpowiedź Grahama Perksa stackoverflow.com/a/14970926/1199564 powinien być oznaczony jako poprawna odpowiedź. - mgd
Miałem podobny problem i rozwiązałem ponowną instalację git --without-completions i pozyskiwanie bash-completion.bash plik z .bash_profile to najprawdopodobniej jest przesłonięte zgodnie ze standardową procedurą. - Leonardo
To nie jest poprawna odpowiedź. @Graham perks's odpowiedź jest poprawna. - CantGetANick
@CantGetANick Odpowiedź Grahama nie rozwiązała mojego problemu, tak właśnie zrobiłem, dlatego właśnie to zaznaczyłem. - user137369
Zgadzam się w 100% z użytkownikiem137369: już miałem zainstalowany pakiet bash-completion dla homebrew, więc odpowiedź @ graham nie mogła dla mnie zadziałać. Jednak, brew install git naprawiono wszystko (bez potrzeby - bez uzupełnień). Myślę, że jest to również poprawna odpowiedź. - bronson


Miałem ten sam problem, a nawet znalazłem ten post dziś rano. Naprawiłem problem, aktualizując napar z brew update a następnie ponowne instalowanie gita z brew reinstall git.

Zostałem powiadomiony o innym pliku, który blokuje proces łączenia w homebrew, w moim przypadku był /usr/local/share/zsh/site-functions/git-completion.bash. Usuwanie pliku i uruchamianie brew link git rozwiązał problem. Zgadywanie, że to tylko zła wersja przepisu, na którą natknęliśmy się.


4
2018-03-02 16:34



Zauważysz też, że wersja gita, której używasz, to wersja Apple, a nie wersja zainstalowana przez Homebrew. Przynajmniej w moim przypadku. Możesz sprawdzić wersję za pomocą git --version - Jonathan Knapp
Nie. To nadal nie działa dla mnie. Zawsze wracałem do korzystania z git OSXa, że ​​zakończenie jest po prostu zbyt dużą cechą, aby odejść. - user137369
git-completion przestał działać dla mnie po aktualizacji do Mavericks. musiałem brew reinstall git i również brew reinstall bash-completion aby działał ponownie. - Kresimir Nesek