커밋 히스토리 정리 방법" is 24 letters in English, but the Korean part
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Git Squashing: 커밋 히스토리 정리 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

소프트웨어 개발자, 버전 관리 도구 사용자, 팀 협업에 관심 있는 개발자

핵심 요약

  • Git squash는 여러 커밋을 하나의 의미 있는 커밋으로 병합하여 히스토리 정리 및 리뷰 효율성 향상
  • git rebase -i 명령어를 사용해 커밋 병합 가능 (예: squash 키워드 사용)
  • 강력한 주의사항: 기존 브랜치에 푸시한 후 squash 시 git push --force-with-lease로 강제 푸시 필요
  • 코드 품질 향상: 팀 내 협업 시 커밋 히스토리의 투명성전문성 유지

섹션별 세부 요약

섹션 1: Git Squashing 정의

  • Git squashing은 "작업 진행 중" 커밋(WIP)을 제거하고, 의미 있는 단일 커밋으로 재구성
  • 예시:
  • 원본 커밋: Create login form, Fix typo, Add styles
  • 병합 후: Create login form with styles and fixes
  • 장점: 리뷰자 및 향후 개발자가 코드 흐름을 쉽게 파악 가능

섹션 2: Squashing 사용 시기

  • Merge 전: Feature 브랜치를 main 또는 develop에 병합하기 전
  • Exploaratory coding 후: 여러 작은 변경사항을 포함한 탐색적 개발 이후
  • Pull Request 준비 시: 깔끔한 코드 리뷰를 위해

섹션 3: Git에서 Squash 실행 방법

  1. Interactive rebase 시작:

```bash

git rebase -i HEAD~3

```

  • HEAD~3: 최근 3개 커밋을 대상으로 지정
  1. 커밋 병합 지정:
  • pick 대신 squash 키워드 사용 (예: squash b7d2f1c Add button styles)
  1. 최종 커밋 메시지 수정:
  • 기존 메시지 합성 (예: Create button component with styles and spacing fixes)

섹션 4: Untracked Changes 처리

  • Untracked changes가 있을 경우:

```bash

git add .

git commit -m "Handle final UI tweaks"

```

  • 이후 git push로 변경사항과 함께 푸시

섹션 5: Squashing의 중요성

  • 코드 리뷰 효율성: 복잡한 커밋 히스토리가 리뷰 시간 증가
  • 디버깅 편의성: git blame 명령어 사용 시 정확한 변경 기록 확인
  • 팀 협업: 커밋 히스토리가 투명하면 협업 프로세스 개선

결론

  • Git squashing은 코드 품질과 팀 협업을 위한 핵심 실천 방법
  • git rebase -isquash 명령어 사용으로 커밋 히스토리 정리
  • 강제 푸시 시 --force-with-lease를 사용해 협업 중 변경사항 충돌 방지
  • 정기적인 squashing 실천으로 깔끔한 히스토리 유지 및 팀 워크플로우 개선