결국 오늘 하루종일 업데이트 한 내용이 문제 생겨서 되돌리려고 해보니 너무 오래된 백업파일을 들고옴. git으로 관리 필요.
왜 필요한가?
현재 봇 코드 관리 방식의 문제:
.bak,.bak2,.bak3,.corrupted_날짜등 수동 백업 파일 난립- 어떤 변경이 언제 왜 이루어졌는지 추적 불가
- 패치 스크립트(
patch_bot.py→emergency_fix.py→safe_patch_v2.py등)가 연쇄적으로 쌓임 - 인코딩 깨짐 등 문제 발생 시 정확한 복원 지점 특정 어려움
Git을 도입하면:
- 모든 변경이력 자동 기록 (누가, 언제, 무엇을, 왜)
- 문제 발생 시
git revert한 줄로 원복 .bak파일 불필요 → 폴더 깨끗해짐
1단계: 서버에서 Git 초기화 (5분)
# SSH 접속
ssh -i "키파일경로" bitnami@13.125.177.27
# thinktank 폴더로 이동
cd /home/bitnami/thinktank
# Git 초기화
git init
# 사용자 정보 설정 (커밋 기록에 남음)
git config user.name "hyungrok"
git config user.email "e@hyungrok.com"
2단계: .gitignore 만들기
불필요한 파일이 추적되지 않도록 설정:
cat > .gitignore << 'EOF'
# Python
__pycache__/
*.pyc
# 로그
*.log
# 백업 (더 이상 필요없음)
*.bak
*.bak2
*.bak3
*.corrupted_*
# 패치 스크립트 (1회성)
patch_*.py
*_fix*.py
deploy_*.py
repatch_*.py
safe_patch*.py
# 환경 파일
.env
EOF
3단계: 첫 커밋
# 핵심 파일만 추가
git add telegram_intake_bot.py
git add restart_bot.sh
git add workspace_sync.py
git add weekly_report.py
git add .gitignore
# 첫 커밋
git commit -m "초기 커밋: 봇 v2.2 + CRM title 기능"
4단계: GitHub 원격 저장소 연결 (선택)
GitHub에 비공개 저장소를 만들면 코드가 클라우드에도 백업됩니다.
# GitHub에서 Private 저장소 생성 후:
git remote add origin https://github.com/본인계정/thinktank-bot.git
git branch -M main
git push -u origin main
GitHub 토큰이 필요합니다.
Settings > Developer settings > Personal access tokens에서 생성.
일상 사용법
코드 수정 후 저장
# 변경사항 확인
git diff
# 저장 (커밋)
git add telegram_intake_bot.py
git commit -m "CRM: project_folder 필드 추가"
문제 발생 시 되돌리기
# 직전 커밋으로 되돌리기 (가장 많이 쓸 명령어)
git checkout telegram_intake_bot.py
# 특정 커밋으로 되돌리기
git log --oneline # 커밋 목록 확인
git checkout abc1234 -- telegram_intake_bot.py # 해당 시점으로 복원
변경 이력 보기
# 최근 커밋 목록
git log --oneline -10
# 특정 파일의 변경 이력
git log --oneline telegram_intake_bot.py
# 두 시점 비교
git diff abc1234 def5678 -- telegram_intake_bot.py
주요 명령어 요약
| 상황 | 명령어 |
|---|---|
| 변경사항 확인 | git status / git diff |
| 변경 저장 | git add 파일명 && git commit -m "설명" |
| 되돌리기 (파일 하나) | git checkout -- 파일명 |
| 이력 보기 | git log --oneline -10 |
| 원격 백업 | git push |
참고: 기존 백업 파일 정리
Git 세팅 완료 후 기존 .bak*, .corrupted_*, patch_*.py 등은 삭제해도 안전합니다.
(Git에 첫 커밋이 들어간 후에 정리하세요)
# 예시: 구 백업 파일 정리
mkdir -p /home/bitnami/thinktank/_old_backups
mv *.bak* *.corrupted_* patch_*.py *_fix*.py deploy_*.py safe_patch*.py _old_backups/