#!/bin/bash # Git 강제 업데이트 전용 스크립트 echo "=== Git 강제 업데이트 ===" echo "" if [ ! -d ".git" ]; then echo "❌ Git 저장소가 아닙니다." echo "다음 명령어로 저장소를 클론하세요:" echo "git clone http://39.117.244.52:3000/chpark/database.git" exit 1 fi # 현재 상태 표시 echo "📋 현재 Git 상태:" git status --short echo "" # 현재 브랜치 확인 CURRENT_BRANCH=$(git branch --show-current) echo "현재 브랜치: $CURRENT_BRANCH" echo "" # 백업 옵션 if [ "$1" = "--no-backup" ]; then echo "⚠️ 백업 없이 강제 업데이트합니다." else # 변경사항이 있으면 백업 if ! git diff --quiet || ! git diff --cached --quiet; then echo "💾 로컬 변경사항을 백업합니다..." STASH_NAME="backup-$(date '+%Y%m%d-%H%M%S')" git stash push -m "$STASH_NAME" echo "✅ 백업 완료: $STASH_NAME" echo "" fi fi # 원격 저장소 정보 업데이트 echo "📡 원격 저장소 정보 가져오는 중..." git fetch origin # 강제 리셋 echo "🔄 최신 소스로 강제 업데이트 중..." git reset --hard origin/$CURRENT_BRANCH # 추적되지 않는 파일 정리 echo "🧹 불필요한 파일 정리 중..." git clean -fd echo "" echo "✅ Git 강제 업데이트 완료!" echo "" # 업데이트 결과 echo "📊 업데이트 결과:" echo "최신 커밋:" git log --oneline -3 echo "" echo "변경된 파일 (최근 커밋):" git diff --name-only HEAD~1 HEAD 2>/dev/null || echo "변경된 파일이 없습니다." echo "" # Stash 목록 표시 STASH_COUNT=$(git stash list | wc -l) if [ $STASH_COUNT -gt 0 ]; then echo "💾 백업된 변경사항 ($STASH_COUNT개):" git stash list | head -5 if [ $STASH_COUNT -gt 5 ]; then echo "... 그리고 $((STASH_COUNT - 5))개 더" fi echo "" echo "백업 복원 방법:" echo " 최근 백업 복원: git stash pop" echo " 특정 백업 복원: git stash apply stash@{번호}" echo " 백업 목록 보기: git stash list" fi echo "" echo "🚀 이제 데이터베이스를 시작하려면:" echo " ./start-all-db.sh"