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

0

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

0개의 댓글