In the past few weeks I managed to add changes to a few of my projects in the wrong branches, which led to the merges of unwanted code.
So, I decided that I have to do something about this, something that will prevent me from working on the wrong branch and blindly commit to it
I decided that it would be very neat if I have the branch name in my cmd prompt. So I wrote this little script:
#!/bin/bash
function change_ps {
PS1='($(git branch 2>/dev/null|awk "/^*/{print \$2}")):\w\$ '
export PSCHANGED=1
}
function revert_ps {
PS1="\u@\h:\w\$ "
export PSCHANGED=0
}
function branch {
cd $1
cwd=$(pwd)
if [[ "$cwd" =~ \/home\/hackman\/Projects ]] && [ -d $cwd/.git ]; then
if [ "$PSCHANGED" == 1 ]; then
if [ "$cwd" != "$OLDPWD" ]; then
change_ps
fi
else
change_ps
fi
else
revert_ps
fi
}
After I wrote it, I found another project that does a lot more (git-prompt). But I think that git-prompt is a big overkill for me. The main difference is that my script does a lot less computations for the task of changing the branch.
I have published this code at github