I've been kind of working on a git tutorial for a while now.
I've recently realized that there are two different work flows ( git+subversion and that I use regularly and that trying to describe them both in one tutorial made it quite confusing.

I'm going to remake them in two tutorials instead of one. In the meantime here's the content of my bash profile with the elements I use to smooth my daily experience of git:

#### start Git #####
alias g='git'
alias gco='git checkout'
alias gma='git checkout master'
alias gst='git status'
alias glo='git log'
alias gca='git commit -a'
alias gsd='git svn dcommit'
alias gcav='git commit -v -a'
alias squash='git merge --squash'
alias gpatch='git format-patch'
alias saw='git branch -D'
alias rollback='git reset --hard git-svn'
alias uncommit='git reset --mixed HEAD'
alias fixlastcommit='git commit --amend'
alias branches='git branch -a'
alias grow='git checkout -b'
alias plant='git svn init'
alias gclone='git clone'
alias hide='git stash'
alias unhide='git stash apply'

export PS1='\w $(git branch &>/dev/null; if [ $? -eq 0 ]; then \
echo "(\[\033[00m\]$(git branch | grep ^*|sed s/\*\ //)) "; fi)\$\[\033[00m\] '

#### end Git #####