If not already done, every software developer must try GIT – the fast, distributed version control system. It’s such a nice and useful tool. Once every week I find a new little nice feature.
The last month I used the git-client together with a svn-remote repository and I will never use the svn client again. It is so handy to have the full history of the repository on my notebook. I can commit my changes every time to my local repository and merging/branching is just fun. I’m so much faster …
Here my path to git
- Effectively Using Git With Subversion
- Dominik (a colleague which answered my first questions)
- Pragmatic Guide to Git by Travis Swicegood
- The Git Community Book
- the git man pages
- … and using it every day
Here my favorite git client in action (the command line client 😉 :

There are plugins for eclise, idea, windows, mac… So give it a try and have fun!
And if you want to have the little nice prompt add the following lines to your .bashrc:
... #----------------------------------- # git in prompt #----------------------------------- RED="[33[0;31m]" YELLOW="[33[0;33m]" GREEN="[33[0;32m]" BLUE="[33[0;34m]" LIGHT_RED="[33[1;31m]" LIGHT_GREEN="[33[1;32m]" WHITE="[33[1;37m]" LIGHT_GRAY="[33[0;37m]" COLOR_NONE="[e[0m]" function parse_git_branch { git rev-parse --git-dir &> /dev/null git_status="$(git status 2> /dev/null)" branch_pattern="^# On branch ([^${IFS}]*)" remote_pattern="# Your branch is (.*) of" diverge_pattern="# Your branch and (.*) have diverged" if [[ ! ${git_status} =~ "working directory clean" ]]; then state="${RED}?" else state="${GREEN}?" fi # add an else if or two here if you want to get more specific if [[ ${git_status} =~ ${remote_pattern} ]]; then if [[ ${BASH_REMATCH[1]} == "ahead" ]]; then remote="${YELLOW}?" else remote="${YELLOW}?" fi fi if [[ ${git_status} =~ ${diverge_pattern} ]]; then remote="${YELLOW}?" fi if [[ ${git_status} =~ ${branch_pattern} ]]; then branch=${BASH_REMATCH[1]} echo " (${branch})${remote}${state}" fi } function prompt_func() { previous_return_value=$?; prompt="${GREEN}${USER:-$(type whoami >/dev/null && whoami)}@$(type uname >/dev/null && uname -n) ${BLUE}[w${GREEN}$(parse_git_branch)${BLUE}]${COLOR_NONE} " if test $previous_return_value -eq 0 then # PS1="${prompt}? " PS1="${prompt} \$ " else #PS1="${prompt}${RED}?${COLOR_NONE}" PS1="${prompt}${RED}\$ ${COLOR_NONE}" fi } PROMPT_COMMAND=prompt_func
I found this script at github and changed it a little bit. Thx to trapni.