Stacktrace

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

Kommentarer

  • Att skapa en .gitconfig-fil är ett snabbt och enkelt sätt, men det officiella sättet att ändra inställningar är annars via ”git config”. Kör t.ex.

    git config –global user.name ‘John Doe’
    git config –global user.email johndoe@yahoo.se

    …för att sätta användarinformationen.

  • Jag har nyligen börjat köra git så detta tips samt det lååååånga inlägget
    av Robert om git uppskattade jag verkligen.

    Formatteringen av .bashrc ovan är lite olycklig då man inte direkt ser slutet
    av raderna så jag skrev egna versioner av funktionerna :-)

    function parse_git_dirty {
    git status 2>/dev/null | grep -q ”nothing to commit” || echo \*
    }

    function parse_git_branch {
    git branch –no-color 2> /dev/null |\
    sed -n ”/^* /s:^..\(.*\) [\1$(parse_git_dirty)]:p”
    }

    ”-n” och ”/p” till sed gör att man slipper radera rader man inte är intresserad av.

    Nä, nu ska jag sätta upp centralt gitrepo på min hemmaserver ocskå :-)

  • [...] våra tidigare inlägg om Git-tricks eller en mer utförlig artikel om Distribuerad versionshantering med [...]

Skriv kommentar