Update
This commit is contained in:
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
# Skript: Neues Feature erstellen
|
||||
|
||||
MASTER_BRANCH="master"
|
||||
|
||||
# Abfrage Feature-Name
|
||||
read -p "Bitte den Namen des neuen Features eingeben: " FEATURE_NAME
|
||||
|
||||
# Falls nichts eingegeben wurde, Skript abbrechen
|
||||
if [ -z "$FEATURE_NAME" ]; then
|
||||
echo "❌ Fehler: Kein Feature-Name angegeben."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Validierung: nur erlaubte Zeichen
|
||||
if [[ "$FEATURE_NAME" =~ [^a-zA-Z0-9._-] ]]; then
|
||||
echo "❌ Fehler: Ungültiger Branch-Name. Bitte nur Buchstaben, Zahlen, Punkt, Unterstrich oder Bindestrich verwenden."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FEATURE_BRANCH="feature/$FEATURE_NAME"
|
||||
|
||||
# Check auf uncommittete Änderungen
|
||||
if ! git diff-index --quiet HEAD --; then
|
||||
echo "⚠️ Es gibt noch uncommittete Änderungen. Bitte committen oder stashen, bevor ein neuer Branch erstellt wird."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prüfen, ob Branch lokal schon existiert
|
||||
if git show-ref --verify --quiet refs/heads/$FEATURE_BRANCH; then
|
||||
echo "❌ Fehler: Der Branch '$FEATURE_BRANCH' existiert lokal bereits."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prüfen, ob Branch remote schon existiert
|
||||
if git ls-remote --heads origin $FEATURE_BRANCH | grep -q $FEATURE_BRANCH; then
|
||||
echo "❌ Fehler: Der Branch '$FEATURE_BRANCH' existiert bereits auf Remote."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Auf master wechseln und aktualisieren
|
||||
git checkout $MASTER_BRANCH
|
||||
git pull origin $MASTER_BRANCH
|
||||
|
||||
# Neuen Feature-Branch erstellen und auschecken
|
||||
git checkout -b $FEATURE_BRANCH $MASTER_BRANCH
|
||||
|
||||
# Branch auf Remote pushen
|
||||
git push -u origin $FEATURE_BRANCH
|
||||
|
||||
# Commit-Hash der Basis holen
|
||||
BASE_COMMIT=$(git rev-parse --short HEAD)
|
||||
|
||||
echo "✅ Neuer Feature-Branch '$FEATURE_BRANCH' wurde erstellt und auf Remote gepusht."
|
||||
echo " Basis: $MASTER_BRANCH@$BASE_COMMIT"
|
||||
Reference in New Issue
Block a user