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 =====" echo "===== TWORZENIE NOWEJ GAŁĘZI ====="
# Aktualizacja main # ────────────────────────────────────────────────
echo "Pobieram najnowszy main..." # Najpierw zbieramy wszystkie odpowiedzi od użytkownika
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
echo "" echo ""
echo "Jakiego typu zmiana?" echo "Jakiego typu zmiana?"
echo " 1 = fix (poprawka błędu)" echo " 1 = fix (poprawka błędu)"
echo " 2 = feat (nowa funkcjonalność)" echo " 2 = feat (nowa funkcjonalność)"
echo " 3 = refactor (poprawa kodu bez zmiany zachowania)" echo " 3 = refactor (poprawa kodu bez zmiany zachowania)"
echo " 4 = docs (dokumentacja)" echo " 4 = docs (dokumentacja)"
echo " 5 = inne (wpisz własną prefiksa)" echo " 5 = inne (wpisz własną prefiksa)"
echo -n "Wybierz numer (Enter = fix): " echo -n "Wybierz numer (Enter = fix): "
read -r choice read -r choice
@ -28,7 +22,8 @@ case "$choice" in
2) PREFIX="feat" ;; 2) PREFIX="feat" ;;
3) PREFIX="refactor" ;; 3) PREFIX="refactor" ;;
4) PREFIX="docs" ;; 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" ;; *) PREFIX="$choice" ;;
esac esac
@ -40,13 +35,13 @@ if [ -z "$DESC" ]; then
exit 1 exit 1
fi fi
# Czyszczenie opisu: małe litery, spacje → -, usuń zabronione znaki # Czyszczenie opisu
DESC=$(echo "$DESC" | tr '[:upper:]' '[:lower:]' | tr -s ' ' '-' | tr -cd '[:alnum:]-') DESC=$(echo "$DESC" | tr '[:upper:]' '[:lower:]' | tr -s ' ' '-' | tr -cd '[:alnum:]-')
BRANCH="${PREFIX}-${DESC}" PROPOSED_BRANCH="${PREFIX}-${DESC}"
echo "" echo ""
echo "Proponowana nazwa gałęzi: $BRANCH" echo "Proponowana nazwa gałęzi: ${PROPOSED_BRANCH}"
echo -n "Zatwierdzasz? [T/n]: " echo -n "Zatwierdzasz? [T/n]: "
read -r confirm read -r confirm
@ -57,14 +52,48 @@ if [[ "$confirm" =~ ^[Nn]$ ]]; then
echo "❌ Anulowano." echo "❌ Anulowano."
exit 1 exit 1
fi fi
else
BRANCH="${PROPOSED_BRANCH}"
fi 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" git checkout -b "$BRANCH"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "❌ Błąd gałąź prawdopodobnie już istnieje." echo "❌ Błąd gałąź $BRANCH prawdopodobnie już istnieje."
git branch git branch
# Przywracamy stan sprzed próby (opcjonalnie)
git checkout main
exit 1 exit 1
fi fi

View File

@ -1,52 +1,14 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e # wychodzi przy pierwszym błędzie echo "Synchronizuję main..."
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 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ą # opcjonalnie: usuń stare, już zmergowane gałęzie lokalne
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 fetch --prune
git branch --merged main | grep -v '^ *main$' | xargs git branch -d 2>/dev/null || true git branch --merged main | grep -v '^ *main$' | xargs git branch -d 2>/dev/null || true
<<<<<<< Updated upstream
echo "" echo ""
echo "======================================" echo "======================================"
echo "✅ Zrobione:" echo "✅ Zrobione:"
@ -55,4 +17,7 @@ echo "• $CURRENT zmergowany do main"
echo "• main wypushowany na serwer" echo "• main wypushowany na serwer"
echo "Jesteś teraz na: $CURRENT" echo "Jesteś teraz na: $CURRENT"
echo "======================================" echo "======================================"
git checkout main git checkout main
=======
echo "Gotowe. Teraz możesz tworzyć nową gałąź."
>>>>>>> Stashed changes