Jeśli na co dzień obsługujesz Gita z poziomu konsoli i nie korzystasz z aliasów to popełniasz duży błąd. Aliasy znacząco przyspieszają pracę z Gitem. Zachęcam do zdefiniowania kilku aliasów do najczęściej wykorzystywanych komend i przekonania się, że praca z Gitem może być jeszcze bardziej przyjemna i znacząco szybsza. Pomoże Ci w tym ten wpis, który krótko prezentuje podstawy oraz smaczki aliasów.
Definiowanie aliasu
Zdefiniować alias można na dwa sposoby. Pierwszy z nich to komenda.
git config --global alias.mt mergetool
Drugi sposób to edycja pliku .gitconfig
.
[alias] mt = mergetool lg = log --color --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
Osobiście preferuję drugą metodę.
Magia aliasów
Alias do zewnętrznego programu należy poprzedzić wykrzyknikiem.
gk = !gitk
Nic nie stoi na przeszkodzie, aby dokonać rekurencji.
lg5 = !git lg -5
Albo połączyć dwie (lub więcej) operacji.
ff = "!git ls-files | grep -i"
Można także wykonać skrypt z parametrami.
zip = "!f() { git archive --format=zip -o $1-$2.zip HEAD; }; f"
Moje aliasy
Na koniec lista moich aliasów. Spis ten nieustannie ewoluuje.
[alias] co = checkout cb = checkout -b cod = checkout . unstage = reset -- mt = mergetool dt = difftool b = branch bc = branch --contains brc = branch -r --contains f = fetch s = status c = commit a = add ad = add . aa = add ** ai = add -i last = difftool HEAD~1 develup = fetch origin develop:develop fpush = push -f origin lg = log --color --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit fix = "!f() { git worktree add -b feature/\"$1\" ./fix/\"$1\" origin/develop; }; f" ls = "!git config -l | grep alias | cut -c 7-"
Dodałem aliasy do
.gitignora
zrobiłem commit-a ale nadal gdy wpisuje komendy to mam info „command not found”Aliasy dodaje się do pliku
.gitconfig
, a nie do.gitignore
.Spróbuj je dodać za pomocą komendy, tak jak jest w pierwszym przykładzie.
Dobrze napisane, ciekawy tekst.
Dziękuję.