Som veľmi zlý v skriptovaní shellu (s bashom), hľadám cestu k tomu skontrolujte, či je aktuálna vetva git „x“, a zrušte skript, ak nie je „x“.
#!/usr/bin/env bash
CURRENT_BRANCH="$(git branch)"
if [[ "$CURRENT_BRANCH" -ne "master" ]]; then
echo "Aborting script because you are not on the master branch."
return; # I need to abort here!
fi
echo "foo"
ale to nie je celkom v poriadku
odpovede:
22 pre odpoveď č. 1použitie git rev-parse --abbrev-ref HEAD
získať názov aktuálnej pobočky.
Potom už stačí len jednoducho porovnať hodnoty v skripte:
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [[ "$BRANCH" != "x" ]]; then
echo "Aborting script";
exit 1;
fi
echo "Do stuff";
4 pre odpoveď č. 2
Jednou z možností by bola analýza výstupu súboru git branch
príkaz:
BRANCH=$(git branch | sed -nr "s/*s(.*)/1/p")
if [ -z $BRANCH ] || [ $BRANCH != "master" ]; then
exit 1
fi
Ale variant, ktorý používa interné príkazy git na získanie iba názvu aktívnej vetvy, ako navrhuje @knittl, je menej náchylný na chyby a vhodnejší
3 pre odpoveď № 3
Chcete použiť exit
namiesto return
.