Sytuacja kobiet w IT w 2024 roku
18.07.20193 min
Avery Duffin

Avery DuffinSoftware EngineerRainFocus

Jak włączyć aliasy i kolory w gicie

Poznaj narzędzia przydatne w gicie, dzięki którym staniesz się bardziej efektywnym programistą.

Jak włączyć aliasy i kolory w gicie

Czy jesteś osobą, która nadal pisze kod w edytorze z białym tłem? Jeśli tak, to zapewne nie przejmujesz się małymi sprawami i ten artykuł nie jest dla Ciebie. 

Ale jeśli chcesz się nauczyć, jak zwiększyć swoją produktywność, korzystając z wiersza poleceń gita, to czytaj dalej. Ten artykuł zapozna Cię z dwoma nowymi narzędziami, które możesz dodać do Twojego programistycznego zestawu narzędzi.

Będziemy pracować w naszych plikach .bashrc (linux) lub .bash_profile (mac). Przepraszam windowsowców, ale nie wiem jeszcze jak to zrobić na Waszym sprzęcie. Jeśli nie jesteś zaznajomiony z tymi plikami, to tutaj możesz przeczytać o nich więcej.

Git jest brudny lub czysty


czysta gałąź


brudna gałąź

Podczas kodowania, z bólem przychodzi ten moment, gdy musisz usiąść nad terminalem i wpisywać git status za każdym razem, gdy chcesz sprawdzić nową gałąź. 

Dlaczego nie pozwolić, aby terminal kolorystycznie informował Cię o tym, w której gałęzi się znajdujesz i czy są w niej zmiany, czy jest czysta.

W pliku .bash_profile lub .bashrc dodaj następujący kod.

# Git branch in prompt.

function parse_git_dirty {
 [[ -n "$(git status -s 2> /dev/null)" ]] && echo -e '\033[1;31m'
}

parse_git_branch() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/ $(parse_git_dirty)(\1)/"
}

if [ "$color_prompt" = yes ]; then
    PS1="${debian_chroot:+($debian_chroot)}\[\033[01;36m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi


Musisz się upewnić, że masz włączone kolory terminalu.

Zauważ, że mamy tu dwie funkcje. Pierwsza to parse_git_dirty. Ta funkcja mówi nam, czy mamy brudny kod (kod, który nie został zapisany w naszym repo). Następną funkcją jest parse_git_branch. Ta funkcja zapyta gita i powie nam, na jakiej gałęzi się znajdujemy.

Ostatnia część tego snippetu to tylko dodanie kolorów do konsoli. Ja ustawiłem sobie kolory, które lubię. Nie będę się za długo rozwodził na temat wyboru kolorów, ale możesz przeczytać o różnych opcjach tutaj. Skopiuj sobie ten kod i nie krępuj się, żeby go ulepszyć.

Uwaga: Gałąź będzie widoczna tylko wtedy, gdy znajdujesz się w katalogu z repozytorium gita.

Aliasy

Innym naprawdę użytecznym narzędziem jest posiadanie aliasów dla poleceń git. Zamiast wyjaśniać te polecenia, wypiszę je, a Ty możesz je sobie skopiować i wypróbować. gl jest jednym z faniejszych i jeśli się przyjrzysz, to zobaczysz, że mamy kilka aliasów, które faktycznie używają naszej funkcji parse_git_branch.

alias gaa='git add -A'
alias gcm='git commit -m'
alias gcma='git commit -a -m'
alias gwait='git reset HEAD' # Unstages everything.
alias gl='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit'
alias gundo='git reset --soft HEAD^' # Undoes the last commit and moves the files in the commit to staging.
alias gco='git checkout'
alias gpusho="git push origin ${parse_git_branch}"
alias gpullo="git pull --rebase origin ${parse_git_branch}"

Autocomplete

A teraz jedna z najbardziej irytujących rzeczy związanych z używaniem git cli,  czyli brak autocomplete dla gałęzi i API. Dodaj ten kod do swojego pliku .bashrc lub .bash_profile, a autocomplete powinien działać.

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
fi

Podsumowanie

Mam nadzieję, że ten artykuł okazał się pomocny. Jeśli chcesz pobrać kompletną kopię mojego profilu .bash_profile, możesz znaleźć ją tutaj.

Wesołego kodowania!


Oryginał tekstu w języku angielskim przeczytasz tutaj.

<p>Loading...</p>