본문 바로가기
카테고리 없음

[Git] Git 기본 다지기와 브랜치 정리

by easyfly 2025. 8. 11.
반응형

 

1. Git의 핵심 구조 이해

Git은 분산 버전 관리 시스템입니다. 핵심 요소는 다음과 같습니다.

구성요소 역할
Working Directory 내 컴퓨터에서 수정 중인 실제 파일들이 있는 공간
Staging Area (Index) 커밋 전에 “올려두는” 대기 공간 (git add)
Local Repository 내 PC에 저장된 Git DB (.git 폴더)
Remote Repository GitHub, GitLab, Bitbucket 등 원격 저장소

📌 흐름
수정 → git add(스테이징) → git commit(로컬 저장소 기록) → git push(원격 반영)


2. 브랜치(Branch) 기본기

  • 브랜치는 개발 라인을 나누는 개념
  • master/main: 배포 가능한 안정 버전
  • feature/: 기능 개발용 브랜치
  • hotfix/: 긴급 수정
  • release/: 배포 준비 단계

실무 원칙:

  1. master는 항상 배포 가능 상태 유지
  2. 기능 개발은 feature/기능명에서 작업
  3. 완료 즉시 master에 병합(Merge) 후 브랜치 삭제

3. 병합(Merge) 방식

  • Fast-forward merge: 브랜치가 master보다 앞에만 있는 경우, 그냥 앞으로 이동
  • 3-way merge: 양쪽 브랜치 모두 변경이 있어 새 커밋을 만들어 병합
  • Squash merge: 여러 커밋을 1개로 합쳐 깔끔하게 병합 (히스토리 단순화)

4. 원격 동기화 기본 명령

git fetch       # 원격 변경사항 가져오기 (병합X)
git pull        # fetch + merge
git push        # 로컬 변경사항을 원격에 업로드

💡 git fetch --all --prune
모든 원격 브랜치 최신화 + 원격에서 삭제된 브랜치 로컬에서도 제거


5. 브랜치 상태 확인

git branch          # 로컬 브랜치 목록
git branch -r       # 원격 브랜치 목록
git branch -vv      # 추적 관계와 최신 커밋 상태
git log --oneline --graph --all

6. 브랜치 정리(실무에서 자주 하는 패턴)

master 최신화

git checkout master
git fetch --all --prune
git pull

병합된 브랜치 삭제

git branch --merged master | egrep -v '^\*| master' | xargs git branch -d

 

git branch --merged master는 master에 이미 병합된 로컬 브랜치 목록을 보여줍니다.
egrep -v '^\*| master'는 현재 체크아웃된 브랜치(*)와 master 자체를 제외합니다.
그 결과 남은 브랜치들을 xargs git branch -d로 순차 삭제하여, master에 병합된 불필요한 브랜치를 안전하게 정리합니다.

한 키에 master만 남기고 다른 브랜치 삭제

원격 브랜치 삭제

git push origin --delete 브랜치명

 

7. 커밋 관리 기본

  • 좋은 커밋 메시지 구조
타입(영역): 간결한 설명 (한 줄)
[빈 줄]
상세 설명 (필요 시)

타입 예시:

  • feat: 새로운 기능 추가
  • fix: 버그 수정
  • docs: 문서 변경
  • refactor: 코드 리팩터링
  • chore: 기타 변경(빌드, 환경설정 등)

8. 실무 습관 포인트

  • 기능 하나당 하나의 브랜치 → 완료 후 즉시 머지 & 삭제
  • 의미 있는 단위로 커밋
  • 커밋 메시지에 왜 변경했는지 기록
  • 병합 전 항상 git pull --rebase로 최신 상태 맞추기
  • 브랜치/커밋 정리는 정기적으로(예: 2주마다)

 

반응형

댓글