oscam-2.26.01-11942-802-wit.../git-sync.sh

58 lines
1.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
set -e # wychodzi przy pierwszym błędzie
echo "======================================"
echo " git-sync pełna synchronizacja + merge + push"
echo "======================================"
CURRENT=$(git rev-parse --abbrev-ref HEAD)
if [ "$CURRENT" = "main" ] || [ "$CURRENT" = "HEAD" ]; then
echo "Błąd: jesteś na main lub w detached HEAD."
echo "Najpierw przejdź na swoją gałąź roboczą."
exit 1
fi
echo "Twoja gałąź: $CURRENT"
# 1. Aktualizacja origin (wszystkie branche)
git fetch origin
# 2. Przechodzimy na main i aktualizujemy go z serwera
echo "→ Aktualizuję main z origin..."
git checkout main
git pull --ff-only origin main # --ff-only = nie pozwala na merge jeśli nie jest fast-forward
# 3. Wracamy na gałąź roboczą
git checkout "$CURRENT"
# 4. Merge main → nasza gałąź (żeby nie mieć konfliktów przy mergu w drugą stronę)
echo "→ Merge main → $CURRENT (aktualizacja feature z main)..."
git merge main
# 5. Teraz merge nasza gałąź → main
echo "→ Merge $CURRENT → main lokalnie..."
git checkout main
git merge "$CURRENT" --no-edit # --no-edit = bez edytowania komunikatu merge
# 6. Push main na serwer
echo "→ Wrzucam zaktualizowany main na serwer..."
git push origin main
# 7. Opcjonalnie: wracamy na gałąź roboczą
git checkout "$CURRENT"
# 8. Czyszczenie starych zmergowanych gałęzi (opcjonalne)
git fetch --prune
git branch --merged main | grep -v '^ *main$' | xargs git branch -d 2>/dev/null || true
echo ""
echo "======================================"
echo "✅ Zrobione:"
echo "• main zaktualizowany z serwera"
echo "$CURRENT zmergowany do main"
echo "• main wypushowany na serwer"
echo "Jesteś teraz na: $CURRENT"
echo "======================================"
git checkout main