Korzystając z git OSX, po zmodyfikowaniu pliku mogę po prostu zrobić git commit <tab>
, a to automatycznie uzupełni nazwę pliku do tej, która została zmodyfikowana. Jeśli jednak zainstaluję nowszą wersję gita z homebrew i skorzystam z niej, ta funkcja już nie działa (co oznacza, że naciskam <tab>
i po prostu „pyta” mnie, na jakim pliku chcę to zrobić, nawet włączając te, które nie mają zmian ).
Czy ktoś może rzucić trochę światła na to, dlaczego i jak rozwiązać ten problem? Wolałbym używać git homebrew, ponieważ jest bardziej aktualny.
Moja powłoka to zsh i Ani instaluję, bash-completion
ani nie zsh-completions
działam (nawet po wykonaniu instrukcji po instalacji homebrew).
Ponadto po zainstalowaniu gita z homebrew jest napisane
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 czy nie powinienem być w stanie użyć jednego z nich?
źródło
zsh
igit
której używasz?git
uzupełnienia działają ( na przykładgit co<TAB>
==>git commit
)?zsh-completions
nie był zadowolony z mac git, chociaż wcześniej działał dobrze (prawdopodobnie zaktualizowany na ślepo do wersji 0.17.x).Odpowiedzi:
Szukasz:
Jak stwierdza komentarz warpc, musisz dodać następujące elementy do swojego,
~/.bash_profile
aby uzupełnienie bash homebrew działało:Powyższe jest wspomniane w zastrzeżeniach podczas instalowania formuły zakończenia basha.
Uwaga: jeśli używasz Bash v4 lub nowszego (przez
brew install bash
), będziesz chciał użyćbrew install bash-completion@2
, aby włączyć uzupełnianie kart, dodaj następujące elementy zgodnie z~/.bash_profile
opisem w zastrzeżeniach:Dodatkowy eksport jest niezbędny w przypadku git, docker, youtube-dl i innych uzupełnień, które mogą znajdować się w
$(brew --prefix)/etc/bash_completion.d/
katalogu.źródło
brew install git zsh-completions
? Ponadto po zainstalowaniu gita z homebrew pojawia się komunikatBash 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 czy nie mógłbym użyć jednego z nich?bash-completion
anizsh-completions
działanie (nawet po wykonaniu instrukcji homebrew po instalacji) nie działały.To get's git tab uzupełnianie działające na OSX bez konieczności ponownego uruchamiania terminala:
źródło
&&
. Każdy skrypt bash może być taki jednolinijkowy.brew install
metoda. Po prostu dlatego, że działa.Na wypadek, gdyby ktoś inny popełnił mój głupi błąd, spróbuj
brew install git
. Używałem tego,git
co jest dostarczane z Xcode i nie zdawałem sobie sprawy, że nigdy nie instalowałem git Homebrew, aby uzyskać autouzupełnianie.źródło
z jakiegoś powodu brakowało mi pliku,
$(brew --prefix)/etc/bash_completion
więc poprawna odpowiedź @Graham Perks nie zadziałałaSkończyło się na tym, że poprawka w moim przypadku była następująca:
źródło
Rozwiązałem problem, odkrywając, że
$(brew --prefix)/etc/bash_completion
powróciłPermission denied
po wykonaniu. Więc po prostym:Teraz wszystko działa dobrze. Zastanawiam się jednak, dlaczego Homebrew nie sprawia, że
bash_completion
plik jest wykonywalny podczas instalacji.źródło
bash_completion
ma byćsource
tak, więc definicje są w twojej powłoce; wykonanie nie przyniesie żadnego efektu.Znalazłem działające rozwiązanie. Jest bardzo nowy (stworzony 16 godzin temu i wydany 2 godziny temu) i pochodzi bezpośrednio z homebrew .
brew install git --without-completions
Właśnie go wypróbowałem i w końcu działa zgodnie z przeznaczeniem.
źródło
git
bez ukończenia może poprawić sytuację, w której ukończenie nie działa. Uważam, że odpowiedź stackoverflow.com/a/14970926/1199564 Grahama Perksa powinna zostać oznaczona jako poprawna.git --without-completions
i pozyskiwaniebash-completion.bash
pliku z.bash_profile
tego pliku, który najprawdopodobniej jest nadpisywany zgodnie ze standardową procedurą.brew install git
naprawiono wszystko (nie ma potrzeby - bez uzupełnień). Myślę, że to również poprawna odpowiedź.Miałem ten sam problem i nawet znalazłem ten post dziś rano. Naprawiłem problem, aktualizując brew za pomocą,
brew update
a następnie ponownie instalując git za pomocąbrew reinstall git
.Zostałem wtedy powiadomiony o innym pliku, który blokuje proces łączenia homebrew, w moim przypadku tak było
/usr/local/share/zsh/site-functions/git-completion.bash
. Usunięcie pliku i uruchomieniebrew link git
rozwiązało problem. Domyślam się, że to tylko zła wersja przepisu, na którą się natknęliśmy.źródło
git --version
brew reinstall git
a takżebrew reinstall bash-completion
sprawić, by znów zadziałało.Jeśli masz
$BASH_VERSION
<4,1, to na przykład3.2.57(1)-release
wykonaj:Jeśli jednak masz
brew install bash
wersję4.4.12(1)-release
, możesz użyć lepszych i pełniejszych uzupełnień w:Zauważ, że niektóre pakiety (brew, docker, tmux) nadal będą umieszczać pewne uzupełnienia,
$(brew --prefix)/etc/bash_completion.d/
więc możesz dodać:Na koniec powinieneś móc dodać skrypt uzupełniania git, jeśli z jakiegoś powodu sposób, w jaki zainstalowałeś git, nie dodał go do żadnego z tych:
Możesz go pobrać i dodać za pomocą powyższego.
źródło
Krok 1: Pobierz skrypt autouzupełniania:
Krok 2: Zaktualizuj .bash_profile i .bashrc
Za pośrednictwem https://www.anintegratedworld.com/git-tab-autocomplete-on-osx-10-11-el-capitan/
Jeśli powyższe nie działa, spróbuj https://github.com/bobthecow/git-flow-completion/wiki/Install-Bash-git-completion
źródło
Dla mnie musiałem położyć
do
.bashrc
(nie .bash_profile), aby to zadziałało.".bash_profile jest wykonywany dla powłok logowania, podczas gdy .bashrc jest wykonywany dla interaktywnych powłok niezalogowanych" - z. Jaka jest różnica między .bash_profile i .bashrc? Wydaje mi się, że MacOS Sierra nie uruchamia się tylko
.bash_profile
podczas otwierania nowego okna terminala.bashrc
.Nie umieściłbym tego w _bash_profile, ponieważ wtedy musiałbym ponownie uruchomić / wylogować się, aby aktualizacje odniosły skutek.
źródło
To działało dla mnie w Mojave (OSX 10.14.1):
Następnie dodaj następujący wiersz do swojego ~ / .bash_profile:
źródło
W 2019 roku, używając Bash v5, nie musisz jawnie pozyskiwać skryptu uzupełniającego git bash w swoim
.bash_profile
lub.bashrc
.bashrc
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
) i zapisz go/usr/local/etc/bash_completion.d/
jakogit
Otóż to! Bash automatycznie pobierze plik uzupełnienia git i włączy uzupełnianie.
Uwaga boczna: Zalecam wprowadzenie wszystkich tych zmian,
.bashrc
ponieważ zapewnia to, że kiedy wpadniesz do powłoki interaktywnej (tj. Zpipenv shell
), uzupełnienia zostaną poprawnie załadowane, ponieważ bash będzie źródłem,.bashrc
a NIE.bash_profile
.źródło
Może to mieć coś wspólnego z używaniem libedit zamiast readline w Lion.
Spróbuj zainstalować readline przed git.
źródło
Dla tych, którzy już zainstalowali warzelnię. Nie miałem zainstalowanego skryptu uzupełniania git i nie mogłem znaleźć do tego celu.
Dodałem więc ręcznie:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o $(brew --prefix)/etc/bash_completion.d/git
Pamiętaj, że musisz zmienić nazwę pliku i usunąć rozszerzenie, aby działał.
Jeśli nie masz zainstalowanego dodatku Complete lub git, zainstaluj go w zaakceptowanej odpowiedzi.
brew install git bash-completion
źródło
Jeśli użyłeś homebrew do zainstalowania git, prawdopodobnie nie ma potrzeby instalowania czegokolwiek do obsługi uzupełniania git. Plik „git-Complete.bash” jest gdzieś (mój był tutaj: /usr/local/git/contrib/completion/git-completion.bash)
Wszystko, co musisz zrobić, to znaleźć plik: sudo find / -type f -name "git-Complete.bash"
Następnie umieść jego ścieżkę w swoim .bash_profile. Na przykład musiałem dodać tę linię do mojego ~ / .bash_profile:
Nie zapomnij pobrać swojego ~ / .bash_profile lub ponownie otworzyć terminal;)
from: how-enable-git-tab-complete-bash-mac-os-x
źródło
Wiem, że to stary post, ale tak naprawdę nie musisz instalować żadnych dodatkowych pakietów.
Homebrew informuje Cię, że istnieje katalog ze wszystkimi potrzebnymi rzeczami.
Możesz po prostu dodać następujący wiersz do swojego,
.bash_profile
jeśli używasz Bash:źródło
Włącz automatyczne uzupełnianie poleceń GIT w systemie MAC-OS Mojave 10.14 Jestem programistą i cały czas używam GIT z wiersza poleceń. Kiedy rozważam perspektywę programistyczną, wykonywałem wiele poleceń za pomocą wiersza poleceń dla operacji GIT. W większości przypadków jest to bardzo irytujące, że MAC OS nie obsługuje automatycznego wykonywania poleceń, które częściowo obsługuję. a także sugestie dotyczące poleceń, co oznacza, jakie polecenia są dostępne dla wpisywanych znaków. Dlatego wpisywanie bardzo długich poleceń i najczęściej powtarzających się zadań jest bardzo kłopotliwe, ponieważ literówka idzie źle. :(
Wypełnianie zakładek z pewnością byłoby szybsze i łatwiejsze. Niestety, domyślna instalacja git na niektórych komputerach Mac nie ma włączonego uzupełniania kart.
Szukałem więc rozwiązania problemu i wyszukałem kilka rozwiązań z wyszukiwarki internetowej, takich jak StackOverflow, GitHub, a także z medium. Niestety, te rozwiązania nie działały w moim przypadku i frustrowałem się, próbując wiele razy różnych rozwiązań.
Szukałem głęboko i wypróbowywałem różne rozwiązania i na szczęście jest to łatwe do naprawienia. Poniżej znajdują się kroki, które zebrałem z kilku postów i ostatecznie zadziałało zgodnie z oczekiwaniami. Mam więc nadzieję, że podzielę się z innymi, którzy mają ten problem, jak ja.
Jeśli przejdziesz do wyszukiwania w Internecie, możesz znaleźć wiele rozwiązań, które wspominają o pliku bash uzupełniania git. Nawet przewodnik po GitHubie. Ale proponuję najpierw sprawdzić, czy plik git-Complete.bash znajduje się już na twoim komputerze MAC z git-core lub czymś innym, co pochodzi z instalacji. możesz użyć poniższego polecenia.
otrzymasz poniższe wyniki. (może różnić się w zależności od treści)
Sugeruję, abyś wybrał zainstalowany z git-core
Jeśli skrypt git-Complete.bash nie istnieje na Twoim komputerze, pobierz go z poniższego podanego powyżej i zapisz na komputerze lokalnym w nowym pliku o nazwie git-Complete.bash w katalogu / usr / local / etc / bash_completion.d / katalog.
https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks
Jeśli używasz powłoki Bash, Git ma ładny skrypt automatycznego uzupełniania, który możesz włączyć. Pobierz go bezpośrednio z kodu źródłowego Git pod adresem
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
Jeśli skrypt git-Complete.bash istnieje na twoim komputerze, ale nie ma go w katalogu /usr/local/etc/bash_completion.d/, powinieneś utworzyć ten katalog i skopiować do niego plik. Poniższe polecenie wykona zadanie:
Po wykonaniu powyższego. Skrypt git-Complete.bash powinien istnieć na twoim komputerze lokalnym w katalogu / usr / local / etc / bash_completion.d /.
Teraz musisz odświeżyć swój profil za pomocą poniższego polecenia. Załaduje dodany plik bash do kontekstu terminala.
Wspaniały!!! zrobiłeś to. Po prostu uruchom okno terminala i wypróbuj. Wystarczy wpisać „git sta”, aby wyświetlić sugestie, jak poniżej:
zobacz mój post na GitHubie:
https://github.com/DIL8654/Enable-Auto-Completion-of-GIT-commads-on-MAC-OS-Mojave
Zobacz mój post na Medium tutaj:
https://medium.com/@dilanka85/enable-auto-completion-of-git-commands-on-mac-os-mojave-10-14
źródło