Compare commits
2 Commits
6e54b23b93
...
100859ae45
| Author | SHA1 | Date | |
|---|---|---|---|
| 100859ae45 | |||
| 76e292bd35 |
59
git-start.sh
59
git-start.sh
|
|
@ -2,15 +2,9 @@
|
||||||
|
|
||||||
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?"
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
49
git-sync.sh
49
git-sync.sh
|
|
@ -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:"
|
||||||
|
|
@ -56,3 +18,6 @@ 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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user