Uzupełnianie komend Git na Mac OS X

Paweł Niedźwiecki

Hej, ostatnio zaktualizowałem swojego MacBooka, a wraz z nim zaktualizowała mi się powłoka terminala z Bash na Zsh. Naprawdę byłem mega podekscytowany, myśląc co nowego mnie czeka. I co? Akurat przestało mi działać autouzupełnianie komend w Git 🙁. No cóż, czas się rozprawić z tym problemem :)

Jako iż nie wszyscy mamy ten komfort uruchamiania brew install bash-completion i stosowania się do powiązanych wskazówek, omówię więc, jak ręcznie zainstalowałem skrypty powłoki niezbędne do obsługi uzupełniania Git w Bash oraz Zsh.

Dla kogo jest ten tutorial i po co?

Ten tutorial jest skierowany do osób, które korzystają już z systemu kontroli wersji Git oraz pracują na Mac OS X. Uczymy się tego, jak uruchomić autouzupełnianie komend w Gicie i podczas pracy z Git.

Konfiguracja pod ,,Bash''

Zacznijmy zatem od konfiguracji dla Bash (Powłoka Bourne'a), ponieważ ta powłoka jest już powszechniej znana na rynku, gdyż towarzyszy nam od jakiegoś czasu. Zatem do rzeczy. Otwórz terminal:

1 curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

Nie musisz się martwić o to, w którym katalogu aktualnie się znajdujesz w momencie, gdy to uruchamiasz, ponieważ ten znak: ( ~ ) odwołuje się do Twojego katalogu domowego. Tak więc, gdy już pobierze się .git-completion.bash, uruchom teraz:

1 vim ~/.bash_profile

Następnie wklej tę regułę i zapisz plik:

1 2 3 if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi

Po tym przyszedł czas na skonfigurowanie mojego pliku .bashrc. W tym celu wpisz:

1 vim ~/.bashrc

i tutaj doklej tę regułkę:

1 test -f ~/.git-completion.bash && . $_

Uwaga: $_ oznacza ostatni argument poprzedniego polecenia, więc $_ oznacza uruchomienie pliku konfiguracyjnego .git-completion.bash, który pobraliśmy na samym początku.

To rozwiązanie powinno działać zarówno na Ubuntu, jak i OSX oraz na komputerach bez .git-completion.ba

Teraz jednak przyszedł czas na czary-mary! Wpisz w terminalu git, naciśnij spację i naciśnij tab lub wpisz git com i naciśnij tab 😊.

Jeżeli nie zadziała to od razu, nadaj plikowi odpowiednich uprawnień za pomocą tej komendy: chmod u+x ~/.git-completion.bash, po to, aby:

  • chmod to polecenie modyfikujące uprawnienia do plików
  • u oznacza użytkownika będącego właścicielem pliku, domyślnie jego twórcę, czyli Ciebie
  • + oznacza ustaw / aktywuj / dodaj uprawnienie
  • x oznacza uprawnienie do wykonywania, czyli możliwość uruchomienia skryptu

Dodawanie kompletacji Git do Zsh

Społeczność Git obecnie aktualizuje wszystkie skrypty w swoim repozytorium na GitHub tutaj . W tym repozytorium znajdziesz skrypty dla różnych powłok, w tym Bash i Zsh. Tak więc warto się z nim zapoznać.

Ponieważ zarówno Bash, jak i Zsh są oparte na powłoce Bourne'a, mają wiele podobieństw. Git sprawia, że jest to całkiem oczywiste po otworzeniu .git-completion.zsh i przeczytaniu komentarza:

Potrzebujesz gdzieś zainstalowanego skryptu uzupełniania Bash Gita, domyślnie będzie to lokalizacja, której używa bash-completion.

Właśnie dlatego potrzebujemy dwóch skryptów, by w całości ukończyć konfigurację pod Zsh.

Pobieranie skryptów

Tak więc naszą konfigurację pod Zsh zaczynamy od pobrania skryptów. Wklej poniższy kod do terminala.

1 2 3 4 5 6 7 # Utwórz strukturę folderów mkdir -p ~ /.zsh cd ~ /.zsh # Pobierz skrypty curl -o git-Complete.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash curl -o _git https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh

Zwróć uwagę na to, jak zwyczajowo umieściłem skrypty powłoki w folderze o nazwie .zsh pod folderem domowym użytkownika.

Konfigurowanie powłoki

Gdy skrypty się pobiorą, plik .zshrc można skonfigurować tak, aby zapewniał dostęp do ich funkcjonalności. Wklej w terminal polecenie:

1 vim ~/.zshrc

Następnie wklej do pliku taką regułkę:

1 2 3 4 zstyle ' : Complete : *: *: git: * ' script ~ /.zsh/git-completion.bash fpath = (~ / .zsh $ fpath ) autoload -Uz compinit && compinit

Podczas pierwszego uruchomienia upewnij się, że wyczyściłeś pamięć podręczną autouzupełniania powłoki za pomocą:

1 rm ~ /.zcompdump

Następnie uruchom ponownie terminal i voilà! Teraz możesz się cieszyć autouzupełnianiem 😊!

Paweł Niedźwiecki

elektronika, programowanie, biznes, podróże

więcej
  • praca

    Software Developer

  • lokalizacja

    Warszawa, Polska

  • wiek

    31

Więcej odPaweł

  • Add article