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