2024-06-05 20:18:01 +02:00
|
|
|
#!/bin/bash
|
|
|
|
case "$1" in
|
2024-09-16 10:04:01 +02:00
|
|
|
--help | -h)
|
|
|
|
cat <<EOF
|
2024-06-05 20:18:01 +02:00
|
|
|
|
2024-09-16 10:04:01 +02:00
|
|
|
Description:
|
|
|
|
"git checkout" on steroids
|
2024-06-05 20:18:01 +02:00
|
|
|
|
2024-09-16 10:04:01 +02:00
|
|
|
Usage:
|
|
|
|
gc [--help|--new-branch] [branch]
|
2024-06-05 20:18:01 +02:00
|
|
|
|
2024-09-16 10:04:01 +02:00
|
|
|
Options:
|
|
|
|
-h, --help Print this help.
|
|
|
|
-b, --new-branch Create a new Branch instead changing to an existing branch.
|
2024-06-05 20:18:01 +02:00
|
|
|
|
2024-09-16 10:04:01 +02:00
|
|
|
Author:
|
|
|
|
michael.grote@posteo.de - git.mgrote.net
|
2024-06-05 20:18:01 +02:00
|
|
|
EOF
|
2024-09-16 10:04:01 +02:00
|
|
|
;;
|
|
|
|
--new-branch | -b)
|
|
|
|
(git checkout --quiet -b "$2" && echo '>>> Create new branch "'"$2"'"') || \
|
|
|
|
(git checkout --quiet "$2" > /dev/null 2>&1 && echo '>>> Branch already exists, checking out... ')
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
if [ -n "$1" ] ; then
|
|
|
|
(echo ">>> Try local checkout" && git checkout --quiet "$1" > /dev/null 2>&1) || \
|
|
|
|
(echo ">>> Try remote checkout" && git checkout --quiet -b "$1" origin/"$1" > /dev/null 2>&1 || echo ">>> Unkown branch! ")
|
|
|
|
else
|
|
|
|
(git checkout --quiet master > /dev/null 2>&1 && echo '>>> Try checking out master') || \
|
|
|
|
(git checkout --quiet main > /dev/null 2>&1 && echo '>>> Try checking out main') || \
|
|
|
|
(git checkout --quiet release > /dev/null 2>&1 && echo '>>> Try checking out release')
|
|
|
|
fi
|
2024-06-05 20:18:01 +02:00
|
|
|
esac
|