83 lines
2.1 KiB
Bash
83 lines
2.1 KiB
Bash
#!/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"
|