Na początku przygody z Gitem każdy klepie cały tekst polecenia, później przychodzi chwila refleksji i pytanie czy da się to zoptymalizować? Rozwiązaniem potrzeby są aliasy, umożliwiają tworzenie krótkiego polecenia na podstawie ciągu instrukcji. Teorii starczy, czas na praktykę.

Tworzenie Git aliasu

Proces dodania nowego aliasu jest bardzo prosty. Pierwszą możliwością jest edycja pliku .gitconfig i dodanie w sekcji alias nowego wpisu. Edytując plik .gitconfig w katalogu użytkownika, udostępniamy aliasy dla każdego projektu.

[alias]
	ci = commit
	unstage = reset HEAD --

Drugą opcją jest dodanie aliasu za pomocą polecenia, stwórzmy alias git ls w celu wyświetlenia historii commitów. Odpalamy Git Bash i wprowadzamy poniższe polecenie.

git config --global alias.ls 'log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate'

Definiując alias należy pamiętać by tekst komendy opakować w apostrofy. Po wykonaniu komendy alias został automatycznie dodany do pliku .gitconfig.

git ls
git log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate

Wykonanie polecenia git ls, równoważne jest z dłuższa wersją instrukcji.

W celu uruchomienia zewnętrznych poleceń zamiast poleceń Gita, należy definicje aliasu poprzedzić znakiem wykrzyknika „!”. Powyższą możliwość można wykorzystać wywołując zewnętrzny program np. gitk lub agregując wielu poleceń pod jednym aliasem. Poniższy ciąg instrukcji zapewnia usuniecie ignorowanych plików, które zostały wcześniej dodane do repozytorium Git.

git config --global alias.fixgitignore "!git rm -r --cached . && git add . && git commit -m \".gitignore is now working \""

Jeśli chcemy z poziomu konsoli zweryfikować czy nasze aliasy zostały dodane, możemy wykonać poniższe polecenie.

git config --list

Usuwanie Git aliasu

Utworzone wcześniej aliasy możemy usunąć poprzez edycję pliku .gitconfig i usunięcie nie potrzebnych aliasów z sekcji alias. Istnieje także druga opcja za pomocą wiersza poleceń np. alias git ci usuniemy poniższym poleceniem.

git config --global --unset alias.ci

Bash aliasy

W wcześniejszych przykładach z wykorzystaniem Gita ustawiliśmy aliasy, jednak są one ograniczone, zawsze musimy podać nazwę git na początku polecenia git xxx. W poniższym przykładzie pokaże jak komendę git checkout można skrócić do bardziej zapadającego w pamięci skrótu go. Dodajmy zatem bash alias do odpowiedniego pliku. Po otwarciu Git Bash znajdujemy się w katalogu domowym użytkownika, należy w powyższym katalogu, jeśli nie istnieje utworzyć plik .bashrc.

vim .bashrc

Po otwarciu edytora tekstu przechodzimy do trybu wstawiania, klikając klawisz „i”. Wprowadzamy definicji aliasu dla polecenia git checkout.

alias go='git checkout'

Z powyższego trybu możemy wyjść po przez kliknięcie klawiszu „Esc”. W celu zapisania i zamknięcia pliku wpisujemy „:wq” i klikamy „Enter”. Zostało nam już tylko wykonanie aktualizacji w celu użycia nowego aliasu po przez polecenie source lub ponowne uruchomienie terminala.

source .bashrc

Przetestujmy nowe polecenie, zamiast <branch> podajemy konkretną nazwę brancha, na który chcemy przełączyć się w naszym repozytorium.

go <branch>

Aliasy dzięki wpisaniu do pliku konfiguracyjnego, będą dostępne przy każdym uruchomieniu powłoki.

Podsumowanie

Tworząc własne listy aliasów, ograniczamy ilość naszych kliknięć w klawiaturę w trakcie codziennej pracy z system kontroli wersji. Proste rozwiązanie, a maksymalizuje naszą pracę i sprawia, że mamy więcej czasu na tworzenie kodu lub inne aktywności. W internecie można znaleźć wiele gotowych przykładów list aliasów.  Jednak warto tworzyć powyższą listę samemu, dodając do niej w trakcie codziennej pracy kolejne często wykorzystywane polecenia, łatwiej wtedy zapamiętać nowe skróty(aliasy).