Git-tricks

I ett tidigare inlägg om Distribuerad versionshantering med Git nämnde Robert hur man kan lägga in lite smarta saker i ~/.bashrc om man använder bash-shell. Då kan man på ett tydligt sätt se vilken branch man använder och om det finns filer som inte är add:ade till git-repositoriet.

~/.bashrc

function parse_git_dirty {
  [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}
function parse_git_branch {
  git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/"
}
export PS1='${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]$(parse_git_branch)\$ '

Då ser prompten ut nåt sånt här:

johnny@puma-ubuntu:~/dev/projects/cygni/demo-stuff[master*]$

Som ni ser så syns det tydligt att master-branchen används och * indikerar att det finns filer som inte är inlagda i Git-repot.

Git-konfiguration

Utöver detta kan man skapa filen ~/.gitconfig för att underlätta det vardagliga arbetet med Git. Dels kan man skapa olika alias – exemplet nedan visar hur git st kan användas istället för git status. Du kan även ange namn/e-post som gör att dina pushar/commits ser lite snyggare ut. Color-sektionen underlättar oerhört mycket om du använder ett shell och Git tillsammans. Då får du helt enkelt color-coding i prompten vilket gör att Git-outputen blir enklare att läsa!

~/.gitconfig

[user] 
  email = johnny.puma@acme.se 
  name = Johnny Puma 

[alias] 
  st = status 
  ci = commit 
  br = branch 
  co = checkout 
  df = diff 
  lg = log -p 

[color] 
  ui = auto