Git 브랜치 전략과 명령어 총정리 (merge vs rebase 완벽 비교)

Sue·2025년 7월 1일

Git

목록 보기
4/13
post-thumbnail

🔀 Git 브랜치 전략과 명령어 총정리 (merge vs rebase 완벽 비교)

Git은 협업 개발에서 버전 관리와 안정적인 배포를 위해 필수적으로 사용됩니다.
아래는 실무에서 자주 사용하는 Git 명령어와 핵심 개념을 쉽게 정리한 내용입니다.


🔀 브랜치 관리

✅ 브랜치 이동

git checkout {branch명}
  • 브랜치를 전환할 때 사용합니다.
  • 예: git checkout feature/login

🔄 브랜치 병합 (Merge)

git merge {branch명}
  • 현재 브랜치에 다른 브랜치의 내용을 병합합니다.
  • 예: git merge development

특징
✔ 안전하고 충돌 관리가 쉽다.
✖ 병합 커밋(M)이 생겨 히스토리가 복잡해질 수 있다.


🔃 브랜치 리베이스 (Rebase)

git rebase {branch명}
  • 커밋을 다른 브랜치 위에 재배치하여 히스토리를 깔끔하게 유지합니다.
  • 충돌 시 git rebase --continue로 진행합니다.

🔹 Rebase란?

"마치 처음부터 해당 브랜치에서 작업한 것처럼" 커밋 히스토리를 재구성하는 것.


📘 예시

👇 상황

feature/app 브랜치에서 작업 중, development에 새로운 커밋이 추가된 상태:

development: A -- B -- C -- D
                     \
feature/app:           E -- F

✅ merge 사용 시

git checkout feature/app
git merge development

결과:

A -- B -- C -- D ----------- M
                     \       /
                      E -- F
  • M: 자동 생성된 merge 커밋

✅ rebase 사용 시

git checkout feature/app
git rebase development

결과:

A -- B -- C -- D -- E' -- F'
  • E', F': D 뒤에 새로 복사된 커밋
  • 히스토리가 직선형으로 깔끔해짐

✅ 언제 rebase를 사용할까?

  • PR(풀 리퀘스트) 전 히스토리를 정리하고 싶을 때
  • 혼자 작업하는 브랜치에서 유용

⚠️ rebase 주의점

  • 공유된 브랜치에서는 사용 금지!
  • 이미 푸시된 커밋을 rebase하면 충돌 및 혼란 발생
  • 보통 로컬 브랜치에서만 사용

🔥 merge vs rebase 비교

mergerebase
히스토리지저분해질 수 있음깔끔하고 직선적
충돌한 번에커밋마다 가능
협업안전혼자 작업 시 유리
커밋 순서보존재배치

🧼 변경 사항 임시 저장 (Stash)

git stash
git checkout {branch명}
git stash apply
  • 브랜치 변경 전에 작업 내용을 임시 저장 후 복원할 때 사용

📤 원격 저장소 관리

🆙 브랜치 푸시

git push origin {branch명}
  • 로컬 브랜치를 원격 저장소로 푸시

🔄 원격 브랜치 최신화

git pull
  • 원격 저장소와 동기화
  • 명시적으로: git pull origin development

🧱 커밋 관리

✅ 변경 사항 스테이징

git add .
  • 변경된 파일을 커밋 대상에 추가

📌 현재 상태 확인

git status
  • 수정/스테이징 상태 확인

📝 커밋 메시지 작성

git commit -m "feat: 사용자 로그인 기능 구현"
  • Conventional Commit 규칙을 사용하면 협업 시 가독성 ↑

💡 Conventional Commit 예시

  • feat: 새로운 기능
  • fix: 버그 수정
  • docs: 문서 수정
  • style: 코드 스타일 변경
  • refactor: 리팩토링
  • test: 테스트 코드 추가
  • chore: 기타 작업

🌿 브랜치 전략

Git Flow 또는 Trunk-based 방식을 참고하면 좋습니다.

✅ 실무에서 흔히 쓰는 브랜치

  • main 또는 master: 배포용
  • development: 개발 통합
  • feature/xxx: 기능 개발
  • bugfix/xxx: 버그 수정
  • hotfix/xxx: 긴급 수정

📌 실전 Git 꿀팁

작업명령어
브랜치 최신화git pull origin development
기능 개발 시작git checkout -b feature/기능명
커밋 메시지git commit -m "feat: 기능 설명"
병합하기git merge development
충돌 해결 후 진행git add . && git commit 또는 git rebase --continue
임시 저장git stash && git stash apply

profile
AI/ML Engineer

0개의 댓글