Śledziłem http://blog.bitfluent.com/post/27983389/git-utilities-you-cant-live-without, aby dodać git-completion.bash
do mojego/opt/local/etc/bash_completion.d/git-completion
i PS1='\h:\W$(__git_ps1 "(%s)") \u\$ '
wstawiam mój .bashrc_profile
Ale teraz dostaję to -bash: __git_ps1: command not found
wszystko, co robię cd
.
Czy możesz mi powiedzieć, czego mi brakuje?
Odpowiedzi:
Zainstalowałem git za pomocą MacPorts na mojej nowej instalacji Snow Leopard. Po zainstalowaniu MacPorts z obrazu .dmg byłyby to polecenia w Terminal.app:
Jeśli chcesz także obsługi pobierania z repozytoriów SVN i dokumentów, użyj tego zamiast drugiej linii:
Następnie dodaj do swojego ~ / .profile lub ~ / .bash_profile:
lub dla MacPorts od wersji 2.1.2 na Mountain Lion:
lub dla MacPorts z nowszymi wersjami git:
Uwaga: wersja bash 4.1 lub nowsza jest wymagana przez bash_completion.sh. Jeśli zakończenie nie działa, spróbuj
echo $BASH_VERSION
sprawdzić, czy to jest problem. Jeśli tak, wpisz bash MacPorts, piszącbash
i spróbuj ponownie wykonać git.źródło
if [ -f /opt/local/share/git-core/git-prompt.sh ]; then . /opt/local/share/git-core/git-prompt.sh fi
/opt/local/etc/profile.d/bash_completion.sh
wymaga wersji$BASH_VERSION
4.1 lub nowszej, musiałem wykonać następujące czynności w systemie Mac OS X 10.8.3 z MacPorts 2.1.3: Przełączanie powłoki logowania Mac OS X z domyślnej/bin/bash
(wersja 3.2.48 (1)) na MacPorts/opt/local/bin/bash
(4.2 .42 (2) -release) jak opisano tutaj: stackoverflow.com/a/791244/287984. Zasadniczoif [ `grep /opt/local/bin/bash /etc/shells` ]; then echo /opt/local/bin/bash | chsh -s /opt/local/bin/bash; else echo /opt/local/bin/bash | sudo tee -a /etc/shells; chsh -s /opt/local/bin/bash; fi
/bin/bash
w Terminal.app z/opt/local/bin/bash
macports + wszystkie.bash_profile
sugerowane tutaj zmiany.Jeśli zainstalowałeś git za pomocą homebrew, możesz nieco dostosować porady MacPorts i dodać to do swojego
.bash_profile
i.bashrc
Najlepszym sposobem na sprawdzenie, czy poprawnie zainstalowałeś git przy użyciu homebrew ist, aby wykonać
i sprawdź dane wyjściowe dla katalogu instalacyjnego zakończenia git bash
Najnowsza wersja Git (1.7.12) również wymaga następujących elementów, aby włączyć monit.
źródło
__git_ps1
, zobacz odpowiedź superuser.com/a/477749/90231 w tym stosie.Wszystko, co musisz zrobić, to umieścić
git-completion.bash
plik wbin
katalogu osobistym użytkownika i umieścić w tobie.profile
lub.bash_profile
pliku:W ten sposób upewnij się, że Twój lokalny pojemnik znajduje się w ŚCIEŻCE, a
source
polecenie uruchomi się. Wtedy oczywiście zmiana PS1 powoduje wyświetlenie aktualnie wyewidencjonowanej gałęzi w wierszu polecenia.Tak więc, nie ma instalacji MacPort, aby zainstalować „kompletną” wersję GIT (szczególnie irytujące, jeśli już ją masz).
źródło
$PATH
. Postanowiłem umieścić mój,/usr/local/bin/
aby nie musiałem modyfikować mojego istniejącego$PATH
.Chociaż obecna odpowiedź jest poprawna dla starszych MacPortów, pojawił się nowy problem z najnowszymi MacPortami, powodujący ten sam błąd.
Obecny pakiet uzupełniający bash (2.0 r1) wymaga przynajmniej bash 4.1 do poprawnego działania. Jak zwykle używa terminal OS X
/bin/bash
, dostaje tylko 3.x. Musisz zmienić ustawienia terminala, aby używać/opt/local/bin/bash -l
zgodnie z opisem w dokumentacji MacPorts tutaj: http://trac.macports.org/wiki/howto/bash-completionźródło
Musisz znaleźć funkcje uzupełniania poleceń. Dodaj do swojego .bashrc_profile przed PS1:
źródło
Irytujące zostało to ponownie zerwane. Tym razem to git ludzie z wersją 1.7.12-1. Aby umożliwić ludziom korzystanie z funkcji pytania bez funkcji uzupełniania (co może spowolnić działanie), zmienili funkcję poleceń z bash_completion / git na własny plik git-prompt.sh.
Tak więc dodanie bash_completion zgodnie z opisem @Lara pozwoli Ci tylko ukończyć (naciśnięcie klawisza uzupełnia nazwy tagów / gałęzi).
Aby to
__git_ps1
zrobić, możesz użyć go w monicie PS1, musisz również dodać następujące elementy do ~ / .profile.. /opt/local/share/doc/git-core/contrib/completion/git-prompt.sh
Trochę tła jest tutaj - https://bbs.archlinux.org/viewtopic.php?pid=1163632#p1163632
źródło
Lub z Homebrew
źródło
brew install bash-completion git-extras
(myślnik zamiast podkreślenia).Znajdź rozwiązanie na podobne pytanie :
Git-osx-instalator wyposażony
git-completion.bash
i instaluje go/usr/local/git/contrib/completion/
. Po prostu.bash_profile
pobierz ten plik od swojego, aby uzyskać__git_ps1
.źródło
W przypadku Mountain Lion i portów Mac musiałem użyć następujących linii w moim .bash_profile, aby uzyskać __git_ps1 i uzupełnienia do normalnego działania:
źródło
Używam naparu, więc
bash_completion
skrypt główny, który uruchamia wszystkie,bash_completion.d
wydaje się nie być dostępny. Rozwiązania, które proponują uruchomienie tylko jednego skryptu w celu dodania uzupełnień git, nie są rozszerzalne, ponieważ różne pakiety dodają różne skrypty ukończenia i prawdopodobnie chcesz je wszystkie uruchomić. Dlatego dodałem to (zaadaptowane z Arch Linuxa) na końcu/etc/bashrc
:źródło
Przynajmniej z Xcode 6 już masz
git-completion.bash
. Jest w pakiecie aplikacji Xcode.Po prostu dodaj to do swojego .bashrc:
źródło
git br<TAB>
Oprócz posta Adama K. Johnsona
Możesz także umieścić następujące ...
... w swoim / etc / profilu, jeśli chcesz.
W ten sposób wszyscy użytkownicy w systemie skorzystają ze skryptów uzupełniających bash zainstalowanych w katalogu „/opt/local/etc/bash_completion.d/”.
źródło
Chociaż powyższa odpowiedź autorstwa grundprinzip z 2011 roku nadal działa dobrze, chciałem dodać bardziej aktualną odpowiedź teraz, gdy jest teraz pakiet bash-uzupełnianie pakietu Homebrew ( formuła , repo ), który czyni to jeszcze łatwiejszym. (Obejmuje to ukończenie git, a także innych typowych narzędzi).
Dzisiaj system macOS jest dostarczany z wersją Bash 3, ale możesz
brew install bash
uzyskać wersję Bash 4. Jeśli korzystasz z wersji Bash 4, zainstaluj nowszą gałąź 2.x uzupełniania wersji bash.Bash 4
Biegać:
Dodaj do
~/.bash_profile
:Bash 3
Jeśli chcesz trzymać się standardowej wersji 3.x na MacOS, postępuj zgodnie z tymi instrukcjami.
Biegać:
Dodaj do
~/.bash_profile
:Odniesienie: http://davidalger.com/development/bash-completion-on-os-x-with-brew/
źródło
Myślę, że możesz zapomnieć o źródle pliku podczas logowania
.bashrc
, możesz dodać coś takiego:Używanie
.
znaku spacji powoduje uruchomienie pliku w bieżącym kontekście.źródło