Git aliasy

G

Git znudzenie

Ostatnio bardzo mocno „katuję” swój mózg Gitem….hmmmm…uprzyjemniam mu chwile Gitem. Z racji tego, że w pracy nie mam możliwości poużywać sobie Gita w miarę często, eksperymentuję w domu na swoich pet-projects. Używam, używam, używam i nudzi mi się już ciągłe wpisywanie komend w konsoli. Rzecz jasna nie zamienię jej na inne narzędzie do pracy z Gitem, ale kiedy już pamiętasz te bardziej popularne komendy, odechciewa się. Pisałem już o dodatkach do PowerShella, również w kontekście Gita. O tutaj – Aby PowerShell był bardziej power.

Jeśli chodzi o żmudne wpisywanie komend, z pomocą przychodzi sam Git, a jakże…

Zwyczajnie, daje możliwość skrócenia czasu spędzanego na wpisywaniu komend poprzez aliasy komend Gita. Dokumentacja TUTAJ.

Tak, tak właśnie! Zatem do dzieła…

 

Remedium – Git aliasy

Zanim zaczniemy wypisywać w konsoli jakieś magiczne zaklęcia, pokażę Ci jak dodać aliasy bez użycia konsoli.

  1. Mianowicie, najłatwiejszym sposobem jest modyfikacja pliku .gitconfig. Jeśli nie zmieniłeś/łaś miejsca gdzie ten plik „rezyduje” znajdziesz go w katalogu użytkownika: C:\Users\<user_folder>.
  2. Dodajesz sekcję [alias]
  3. Dodajesz kolejne aliasy

Przykład:

[alias]
    s = status
    c = commit -m
    a = add .
    ch = checkout
    p = push origin
    r = reflog
    st = stash
    stp = stash pop
    sta = stash apply
    stl = stash list
    l = log

Tak sekcja [alias] wygląda u mnie. Jak widać nie ma tego wiele, ale prawdopodobnie wysilę się i dodam więcej i wtedy zaktualizuję ten wpis.

Wymyśliłem sobie konwencję nazewniczą dla aliasów, polegającą na aliasach jedno-literowych, lub dwu-literowych w przypadku powtarzających się aliasów (widać to w przypadku status i stash). Jeśli jest to alias do komendy dwu-słownej, dodaję pierwszą literkę drugiego słowa.

Np. dla stash apply zrobiłem alias sta. Dwie literki st (bo mam już alias s) i dodatkowa dla apply.

Ot cała filozofia!

 

Remedium inaczej

Aliasy można dodawać w inny sposób. Mianowicie, z poziomu konsoli za pomocą komendy:

git config --global alias.br branch

W tym przypadku zostanie dodany alias br dla komendy branch.

[alias]
    s = status
    c = commit -m
    a = add .
    ch = checkout
    p = push origin
    r = reflog
    st = stash
    stp = stash pop
    sta = stash apply
    stl = stash list
    l = log
    br = branch

 

Tutaj proponuję uważać, ponieważ jeśli będziesz, drogi czytelniku, chciał nadpisać ten alias za pomocą tej samej komendy, ale z innym aliasem…

git config --global alias.b branch

…nie zostanie on nadpisany. Zostanie dodany nowy alias. Co ciekawe, będą działać oba.

[alias]
    s = status
    c = commit -m
    a = add .
    ch = checkout
    p = push origin
    r = reflog
    st = stash
    stp = stash pop
    sta = stash apply
    stl = stash list
    l = log
    br = branch
    b = branch

 

Jeśli masz jakąś sensowną listę aliasów drogi czytelniku/czytelniczko i chcesz się nią podzielić, albo po prostu podyskutować na ten temat, zachęcam do komentowania, lub kontaktu ze mną.

Czołem!

 

UPDATE


Wasze celne uwagi i komentarze spowodowały, że zdecydowałem podzielić się z Wami moją sekcją [alias]. Dedykuję jej specjalną stronę która, mam nadzieję, jeszcze się zmieni i „urośnie”.

Git aliasy

Mam nadzieję, że każdy znajdzie w nim coś dla siebie.

Aliasy sortuję najpierw alfabetycznie, po pierwszej literce, a następnie grupuję „funkcjonalnie”. Niestety takie podejście nie za bardzo się sprawdza, ze względu na to, że wychodzą mi trudne do zapamiętania aliasy. Wręcz nieintuicyjne.

Macie jakieś własne podejście do ich nazewnictwa? Może powinienem wymyślić własne nazwy (nie akronimy) dla konkretnych funkcjonalności.

Co Wy na to?

Jak zwykle, zachęcam do komentowania, a także subskrypcji mojego newslettera :-).


 



About the author

3 komentarze

  • Z innych aliasów to ja używam takich:

    Aby mieć bardziej czytelną i ładniejszą historię.
    lg = log –color –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(yellow)%Creset’ –

    Pomocne do dorzucania zmian do commitów:
    ca = commit –amend
    cane = commit –amend –no-edit
    aca = !git add -A && git commit –amend

    Czasem korzystam z takiego aliasu, aby przypomnieć sobie co zrobiłem:
    daily = !git log –all –author=$USER –since=’14 pm yesterday’ –format=%s

  • Aliasy fajna rzecz, ale czasami nie wystarczają, gdy np. chcemy użyć jeszcze krótszych komend 🙂

    Przykładowe aliasy:

    [alias]
    glog = log –graph –pretty=format:’%C(auto,yellow)%h%C(auto,magenta)% G? %C(auto,blue)%>(7,trunc)%cr %C(auto,green)%<(10,trunc)%aN %C(auto,reset)%s%C(auto,red)% gD% D'
    undo = reset –soft HEAD^
    df = difftool –dir-diff
    work = log -n 10

    Oprócz standardowych aliasów używam po prostu skryptów *.ps1 na Windowsie lub .sh na macOS w katalogu z moimi skryptami (dodanym do zmiennej środowiskowej). I tak na przykład w pliku gs.ps1 mam `git status -s`. Dzięki temu wpisując `gs` dostaje skróconą informację o zmianach w repo (imo znacznie czytelniejszą niż klasyczny `git status` – por. https://i.imgur.com/QFPaNj4.png).

    Podobne skrypty mam na inne powtarzalne rzeczy jak np. send-email.ps1, resize.ps1, print2pdf.ps1 – po nazwach można domyślić się do czego służą 🙂

    • Heh…o zgrozo, nie pomyślałem o skryptach. Świetny pomysł!
      Można jeszcze bardziej skracać komendy. Na upartego można by pisać skrypty które łączą skrypty, tak żeby odpalały się jeden po drugim :-).

By Patryk

Autor serwisu

Patryk

Społecznościowe

Instagram

Newsletter



Historycznie

Tagi