Git status like a pro

Dzisiejszy post będzie ekstremalnie krótki, jednak chciałbym Wam po prostu zaprezezentować najbardziej produktywny kawałek konfiguracji który znam. Z góry zaznaczam że nie jest on mojego autorstwa.

# ~/.config/fish/functions/g.fish

function g --wraps git
  if count $argv > /dev/null
    git $argv
  else
    git status
  end
end

Jest to funkcja napisana w fishu (przy okazji polecam mój poprzedni post, w którym pisałem co to jest fish i dlaczego jest niesamowity). Pierwsze co robi, to aliasuje nam gita do jednej literki “g”. Jest to rozwiązanie często spotykane i choć rzeczywiście oszczędza nam kupę czasu nie robił bym z tego sensacji. Zwrócił bym jednak uwagę na inny aspekt tego tyciego skryptu. Łączy ona dwa fundamentalne fakty:

  1. Od wpisywania git status, g st, gs można sobie połamać palce
  2. Komenda git bez argumentów (w tym jej alias g) wyświetla nam pomoc

Czy to nie jest genialne w swojej prostocie? Od teraz żeby wyświetlić status wystarczy wpisanie g, a jednocześnie dodanie argumentów pozwala korzystać z g jak ze zwykłego aliasu. Hulaj dusza, piekła nie ma!

Analogiczna funkcja w bashu będzie wyglądać tak (tym razem nie mam wątpliwości że autorem tego kodu jest Chris Toomey):

function g --wraps git
  if count $argv > /dev/null
    git $argv
  else
    git status
  end
end