33 lines
768 B
Bash
33 lines
768 B
Bash
#!/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." |