Przejdź do treści

Git. Jak dodać własne polecenie w shellu?

Jak dodać własne polecenie dla Gita? Z tego artykułu dowiesz się, jak możesz rozszerzać możliwości swojego środowiska operującego na repozytoriach Git.

Baner promujący artykuł

Kroki

Wykonując podane niżej kroki, dodacie nowe polecenie, którego będziecie mogli używać w każdym repozytorium, i nie tylko! Polecanie Gita możemy używać przecież w katalogach, które nie przechowują repozytorium.

1. Stworzyć katalog dla swoich skryptów

mkdir ~/projects/git-scripts

Nazwa git-scripts jest popularną nazwą, zawierają pliki wykonywalne, które to związane są ze światem repozytorium Git.

2. Dodać nową ścieżkę do zmiennej środowiskowej $PATH

Każdy shell bazuje na zmiennych środowiskowych. To one zawierają kluczowe informacje dla działania shella.

Wystarczy, że uruchomicie w terminalu polecenie env, a zobaczycie obecną listę zmiennych środowiskowych używanych w obecnym procesie uruchomionego shella.

Zmienne środowiskowe dostępne są w skryptach uruchomionych w shellu.

Jak rozszerzyć zmienną PATH?

  • Dla Basha

    Otwórzcie plik ~/.bash_profile dopisując:

      export PATH="$HOME/projects/git-scripts/:$PATH"
    
  • Dla Fisha

    Otwórzcie plik ~/.config/fish/config.sh dopisując:

      set -gx PATH $HOME/projects/git-scripts/ $PATH
    

Aby zmiana została “zaaplikowana” należy uruchomić nowego shella. Najszybciej to można wykonać, uruchamiając nową zakładkę w terminalu.

3. Stworzyć plik git-user w katalogu git-scripts

Plik możemy utworzyć za pomocą polecenia:

~/projects/git-scripts > touch git-user

Nie podajemy rozszerzenia. Nazwa pliku będzie poleceniem.

4. Dodać uprawnienia do uruchamiania

To najważniejszy punkt, ponieważ bardzo często o nim się zapomina. Dzięki temu, że plik będzie miał uprawnienia do uruchomienia, będzie mógł być uruchamiany w terminalu jak każde inne polecenie.

Jak nadać uprawnienia do uruchomienia?

~/projects/git-scripts > chmod +x git-user

Aby sprawdzić, czy uprawnienia zostały zaktualizowane, wystarczy wylistować zawartość katalogu:

~/projects/git-scripts > ls -l

-rwxr-xr-x   1 piecioshka  staff   102B Jan 22  2021 git-user

Trzy x oznaczają, że każdy będzie miał możliwość uruchomić ten plik.

Więcej na temat uprawnień do pliku https://pl.wikipedia.org/wiki/Chmod

5. Uzupełnić zawartość pliku

Kopiujemy poniższy listing i wklejamy do pliku ~/projects/git-scripts/git-user:

#!/usr/bin/env bash

name=`git config user.name`
email=`git config user.email`

echo "$name <$email>"

6. Uruchomić polecenie git user

A teraz najprzyjemniejsza i zarazem ostatnia część — uruchomienie!

Plik możemy uruchomić na kilka sposobów!

  1. …ze ścieżką do pliku:

     ~/projects/git-scripts > ./git-user
    
  2. …po nazwie pliku, będąc w dowolnym miejscu:

     ~/tmp > git-user
    
  3. …jako polecenie Git:

     ~/ > git user
    

Pojawia się pytania, jak to się stało, że nasze uruchomione polecenie posiada spację i działa? Przecież nazwa pliku takiej spacji nie posiadała!

Git potraktuje polecenie jako “swoje”, tj. będzie można je uruchamiać ze spacją, czyli będzie “pod poleceniem” (eng. subcommand) — wystarczy, że nazwa pliku będzie rozpoczynała się od prefixu git-.

Każde z powyższych poleceń powinno wyświetlić w terminalu:

Piotr Kowalski <[email protected]>

(btw. nie jest to mój prawdziwy mail)

Moje git-scripts

Na zakończenie zachęcam Was do sprawdzenia mojego repozytorium ze skryptami pomagającymi mi w pracy z repozytoriami Git:

https://github.com/piecioshka/git-scripts

Najfajniejsze moim zdaniem jest polecenie git-bars, które to wyświetla statystyki dla danego użytkownika w konkretnym repozytorium jako bar chart!

A tak się prezentują statystyki dla mojego użytkownika w repozytorium tego bloga:

~/projects/blog > git bars "Piotr Kowalski" 2021

30 commits
2021-04     8 ■■■■■■■■
2021-05     5 ■■■■■
2021-07     5 ■■■■■
2021-08     6 ■■■■■■
2021-10     3 ■■■
2021-11     2 ■■
2021-12     1 ■

Zachęcam Was do tworzenia własnych projektów typu git-scripts i wrzucania do komentarzy pod tym artykułem!