#!/usr/bin/env bash set -euo pipefail MSG="" BRANCH="$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo main)" REMOTE="${REMOTE:-origin}" usage(){ echo "Usage: $0 -m \"commit message\" [-b branch]"; exit 1; } while getopts ":m:b:" opt; do case "$opt" in m) MSG="$OPTARG" ;; b) BRANCH="$OPTARG" ;; *) usage ;; esac done shift $((OPTIND-1)) [[ -n "$MSG" ]] || usage git rev-parse --git-dir >/dev/null 2>&1 || { echo "[x] kein Git-Repo"; exit 1; } echo "[i] Add/Commit → $BRANCH" git add -A # Kein Commit, wenn nichts geändert ist if ! git diff --cached --quiet; then git commit -m "$MSG" else echo "[i] Nichts zu committen (Index leer) – pushe nur." fi echo "[i] Push → $REMOTE/$BRANCH" git push "$REMOTE" "$BRANCH" echo "[✓] Done."