diff --git a/.git_functions.sh b/.git_functions.sh index 5eaafbb49..4bd7b5fc2 100644 --- a/.git_functions.sh +++ b/.git_functions.sh @@ -1,3 +1,34 @@ +# output current branch to STDOUT +function wgbranch { + cat ./.git/HEAD | perl -p -e 's/^ref:\srefs\/heads\/(.+)$/\1/g' +} + + +# output the stash ticket number to STDOUT +function wgtix { + wgbranch | perl -p -e 's/(?:feature|bugfix|refactor)\/(\w+-\d+).+$/\1/' +} + + +# wrapper fn for "git checkout" that exports previous branch to env +function wgcheckout { + if [ -z $1 ]; then + branchname="develop" + else + branchname="$1" + fi + + echo " -- wgcheckout -- " + echo "Storing branch \"$(wgbranch)\" in WGPREV ..." + export WGPREV="$(wgbranch)" + echo "Checking out \"$branchname\" ..." + echo + echo " -- git checkout -- " + git checkout "$branchname" + echo +} + + # combine fetch and rebase (git frebase) function wgfreebase { if [ -z $1 ]; then @@ -9,6 +40,7 @@ function wgfreebase { git fetch origin "$branchname" && git rebase origin/"$branchname" } + # push to current branch function wgpush { if [ -z $1 ]; then @@ -19,3 +51,4 @@ function wgpush { git push origin $branchname } +