#!/bin/bash # FortuneCookie Branch Helper - Narrensicheres Tool für Branch-Wechsel # Einfach aufrufen mit: ./git-branch [daily|testing|stable] REPO_DIR="/home/chrischi/DEV/UT/fortunecookie-neu/testing" # Farbcodes für Ausgabe RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo_current_branch() { cd "$REPO_DIR" 2>/dev/null if [ $? -ne 0 ]; then echo -e "${RED}Fehler: Repo nicht gefunden unter $REPO_DIR${NC}" exit 1 fi current=$(git branch --show-current 2>/dev/null) if [ -z "$current" ]; then echo -e "${RED}Fehler: Nicht in einem Git-Repository oder kein Branch ausgewählt${NC}" exit 1 fi echo -e "${GREEN}Aktueller Branch: $current${NC}" } usage() { echo "FortuneCookie Branch Helper v1.0" echo "==============================" echo "" echo "Verfügbare Befehle:" echo " ./git-branch - Zeigt aktuellen Branch" echo " ./git-branch daily - Wechselt zu daily (Entwicklung)" echo " ./git-branch testing - Wechselt zu testing" echo " ./git-branch stable - Wechselt zu stable" echo " ./git-branch status - Zeigt alle Branches" echo "" echo "Hinweis: Nach dem Wechsel bleibst du im Branch, auch nach Terminal-Neustart." echo " Du musst nur cd \"$REPO_DIR\" ausführen, um ins Projekt zu kommen." exit 1 } # Kein Argument: aktuellen Branch anzeigen if [ $# -eq 0 ]; then echo_current_branch exit 0 fi # Status anzeigen if [ "$1" = "status" ]; then cd "$REPO_DIR" echo -e "${YELLOW}=== Branch Status ===${NC}" git branch -a echo "" echo_current_branch exit 0 fi # Branch wechseln TARGET="$1" # Überprüfen ob gültiger Branch VALID_BRANCHES="daily testing stable" if ! echo "$VALID_BRANCHES" | grep -q "$TARGET"; then echo -e "${RED}Fehler: Ungültiger Branch '$TARGET'${NC}" echo "Gültige Branches: $VALID_BRANCHES" exit 1 fi # Wechseln cd "$REPO_DIR" echo -e "${YELLOW}Wechsle zu Branch: $TARGET${NC}" git checkout "$TARGET" 2>/dev/null if [ $? -eq 0 ]; then echo -e "${GREEN}Erfolgreich zu Branch '$TARGET' gewechselt!${NC}" echo "" echo "Du kannst jetzt arbeiten. Wenn du das Terminal schliest," echo "bleibst du in diesem Branch. Beim nächsten Öffnen einfach:" echo " cd $REPO_DIR" echo " und dann wie gewohnt weiterarbeiten." else echo -e "${RED}Fehler: Branch-Wechsel zu '$TARGET' fehlgeschlagen${NC}" echo "Mögliche Ursache: Branch existiert nicht oder uncommited changes." echo "Lösung: git status prüfen und ggf. changes committen oder stashen." exit 1 fi