Git a pushování

Pokud jste součástí nějakého týmu, který svůj projekt spravuje v Gitu, a vy pracujete na nějaké funkcinalitě v oddělené lokální větvi, pak se čas od času nevyhnete tomu, že budete muset přepínat mezi svou vývojovou větví, nějakou hlavní větvi a pak se vracet zpátky do svého vývoje. No a pak čas od času budete komitovat své změny do remote branche vaší větve.

Abych si tohle co nejvíc zjednodušil a přitom viděl co a kam se pushuje, napsal jsem si bash script, který tohle dělá.

#!/bin/sh

# Script pro jednodussi komitovani zmen do centralniho Git repozitare
# Musi se nastavit jen LOCAL_BRANCH (jak se jmenuje vetev na lokale) a
# REMOTE_BRANCH do ktere se bude pushovat

# adresar na lokale s Git repozitarem
GIT_DIR="/Users/pepa/muj-projekt/"

# Prefix pro BitBuck a dalsi info pro logovani na serveru
JIRA_TASK="/200-109: PRJ nova funkce"

# Prefix commit message, ke ktere se z klavenice zadava detail
COMMIT_MESSAGE="$JIRA_TASK"

# Nazev remote branche na serveru, kam se bude pushovat
REMOTE_BRANCH="HEAD:feature/nova-funkce"

# Nazev lokalniho branche ze ktereho se pushuje nas server
# Obvykle byva stejny jako remote, ale muze byt i jiny
LOCAL_BRANCH="feature/nova-funkce"

# Prepne do pozadovaneho lokalniho branche
cd $GIT_DIR
git checkout $LOCAL_BRANCH

# Pro kontrolu vypis lokalnich branchi s infem o ceckoutu
echo
git branch

echo
read -p "Pushovat $LOCAL_BRANCH do $REMOTE_BRANCH (a/n): " choice

if [ "$choice" ] && [ $choice == "a" ]; then

        echo
        read -p "COMMNENT: " COMMNENT

        if [ "$COMMNENT" ]; then
            COMMIT_MESSAGE="$JIRA_TASK ($COMMNENT)"
        fi

        echo
        echo "$LOCAL_BRANCH -> $REMOTE_BRANCH"
        echo "COMMIT: $COMMIT_MESSAGE"

        echo 
        read -p "OPRAVDU PUSHOVAT? (a/n): " realy

        if [ $realy ] && [ $realy == "a" ]; then
            echo "Tak jo, pushuji..."
            git commit -m "$COMMIT_MESSAGE"
            git push origin $REMOTE_BRANCH
        fi
fi