Compare commits

..

2 Commits

Author SHA1 Message Date
100859ae45 Merge pull request 'fix-autoscript' (#3) from fix-autoscript into main
Reviewed-on: #3
2026-02-17 10:31:35 +00:00
76e292bd35 fix-autoscript 2026-02-17 10:29:58 +00:00
2 changed files with 57 additions and 63 deletions

View File

@ -2,23 +2,17 @@
echo "===== TWORZENIE NOWEJ GAŁĘZI ====="
# Aktualizacja main
echo "Pobieram najnowszy main..."
git checkout main 2>/dev/null || { echo "❌ Nie udało się przełączyć na main"; exit 1; }
git pull origin main
if [ $? -ne 0 ]; then
echo "❌ Błąd podczas git pull. Sprawdź internet / uprawnienia."
exit 1
fi
# ────────────────────────────────────────────────
# Najpierw zbieramy wszystkie odpowiedzi od użytkownika
# ────────────────────────────────────────────────
echo ""
echo "Jakiego typu zmiana?"
echo " 1 = fix (poprawka błędu)"
echo " 2 = feat (nowa funkcjonalność)"
echo " 3 = refactor (poprawa kodu bez zmiany zachowania)"
echo " 4 = docs (dokumentacja)"
echo " 5 = inne (wpisz własną prefiksa)"
echo " 1 = fix (poprawka błędu)"
echo " 2 = feat (nowa funkcjonalność)"
echo " 3 = refactor (poprawa kodu bez zmiany zachowania)"
echo " 4 = docs (dokumentacja)"
echo " 5 = inne (wpisz własną prefiksa)"
echo -n "Wybierz numer (Enter = fix): "
read -r choice
@ -28,7 +22,8 @@ case "$choice" in
2) PREFIX="feat" ;;
3) PREFIX="refactor" ;;
4) PREFIX="docs" ;;
5) echo -n "Wpisz własny prefix (np. chore, test, style): "; read -r PREFIX ;;
5) echo -n "Wpisz własny prefix (np. chore, test, style): "
read -r PREFIX ;;
*) PREFIX="$choice" ;;
esac
@ -40,13 +35,13 @@ if [ -z "$DESC" ]; then
exit 1
fi
# Czyszczenie opisu: małe litery, spacje → -, usuń zabronione znaki
# Czyszczenie opisu
DESC=$(echo "$DESC" | tr '[:upper:]' '[:lower:]' | tr -s ' ' '-' | tr -cd '[:alnum:]-')
BRANCH="${PREFIX}-${DESC}"
PROPOSED_BRANCH="${PREFIX}-${DESC}"
echo ""
echo "Proponowana nazwa gałęzi: $BRANCH"
echo "Proponowana nazwa gałęzi: ${PROPOSED_BRANCH}"
echo -n "Zatwierdzasz? [T/n]: "
read -r confirm
@ -57,14 +52,48 @@ if [[ "$confirm" =~ ^[Nn]$ ]]; then
echo "❌ Anulowano."
exit 1
fi
else
BRANCH="${PROPOSED_BRANCH}"
fi
echo "Tworzę gałąź: $BRANCH"
# ────────────────────────────────────────────────
# Teraz dopiero zaczynamy operacje git
# ────────────────────────────────────────────────
echo ""
echo "Przygotowuję main..."
# Zapisujemy ewentualne niezacommitowane zmiany
echo "→ Zapisuję bieżące niezacommitowane zmiany (stash)..."
git stash push -m "automatyczny stash przed git-start $(date '+%Y-%m-%d %H:%M')" || true
# Przełączamy się na main
git checkout main 2>/dev/null || { echo "❌ Nie udało się przełączyć na main"; exit 1; }
# Aktualizujemy main
echo "→ Pobieram najnowszy main..."
git pull origin main
if [ $? -ne 0 ]; then
echo "❌ Błąd podczas git pull. Sprawdź połączenie / uprawnienia."
# Przywracamy stash jeśli był
git stash pop || true
exit 1
fi
# Przywracamy ewentualne zmiany użytkownika na czystym mainie
echo "→ Przywracam Twoje zmiany (jeśli były schowane)..."
git stash pop || echo "Nie było schowanych zmian OK"
# Tworzymy nową gałąź
echo "→ Tworzę gałąź: $BRANCH"
git checkout -b "$BRANCH"
if [ $? -ne 0 ]; then
echo "❌ Błąd gałąź prawdopodobnie już istnieje."
echo "❌ Błąd gałąź $BRANCH prawdopodobnie już istnieje."
git branch
# Przywracamy stan sprzed próby (opcjonalnie)
git checkout main
exit 1
fi

View File

@ -1,52 +1,14 @@
#!/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..."
echo "Synchronizuję main..."
git checkout main
git pull --ff-only origin main # --ff-only = nie pozwala na merge jeśli nie jest fast-forward
git pull origin main
# 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)
# opcjonalnie: usuń stare, już zmergowane gałęzie lokalne
git fetch --prune
git branch --merged main | grep -v '^ *main$' | xargs git branch -d 2>/dev/null || true
<<<<<<< Updated upstream
echo ""
echo "======================================"
echo "✅ Zrobione:"
@ -56,3 +18,6 @@ echo "• main wypushowany na serwer"
echo "Jesteś teraz na: $CURRENT"
echo "======================================"
git checkout main
=======
echo "Gotowe. Teraz możesz tworzyć nową gałąź."
>>>>>>> Stashed changes