HRKLAMP 서버 Git 버전관리 세팅 가이드

결국 오늘 하루종일 업데이트 한 내용이 문제 생겨서 되돌리려고 해보니 너무 오래된 백업파일을 들고옴. git으로 관리 필요.

왜 필요한가?

현재 봇 코드 관리 방식의 문제:

  • .bak, .bak2, .bak3, .corrupted_날짜 등 수동 백업 파일 난립
  • 어떤 변경이 언제 왜 이루어졌는지 추적 불가
  • 패치 스크립트(patch_bot.pyemergency_fix.pysafe_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/
Posted in mm