브랜치 — Branch · Merge · Rebase · Conflict · Stash
브랜치 — Branch · Merge · Rebase · Conflict · Stash
🎯 이 lesson 을 읽고 나면
이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.
- ▸✅ Git Flow vs Trunk-based Development
- ▸✅ rebase vs merge 차이 + 사용 시점
- ▸✅ Squash merge + 커밋 정리
학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.
브랜치 사용 흐름 6단계
1. 생성 — git checkout -b feature/login (main 에서 분기)
2. 작업·커밋 — 코드 수정 + git commit. main 영향 X
3. push — git push -u origin feature/login — 원격에 추적 브랜치
4. PR 생성 — GitHub에서 Pull Request. 동료 리뷰 요청
5. 승인 → 머지 — 리뷰 통과 + CI 통과 → main 에 머지
6. 브랜치 삭제 — 머지 후 더 이상 필요 X. git branch -d 또는 GitHub UI
> 💡 브랜치 = 평행 우주. main 은 운영 코드, feature 는 실험 코드. 실험 실패 시 브랜치만 버리면 끝.
Merge vs Rebase — 두 가지 통합 방식
Merge — git merge feature 로 main 에 합치기
- ▸결과: Merge Commit 새로 생성. 분기 흔적 남음
- ▸장점: 안전. 원본 커밋 보존
- ▸단점: 히스토리 복잡 (다이아몬드 모양)
Rebase — git rebase main 으로 feature 를 main 위로 옮기기
- ▸결과: 선형 히스토리. 깔끔
- ▸장점: 가독성 ↑. 한 줄 시간선
- ▸단점: 커밋 해시 새로 생성. 푸시된 브랜치엔 위험
언제 뭘?
충돌 해결 4가지 옵션
같은 줄을 다르게 수정 → Git 이 충돌 마커 삽입:
해결 방법:
1. 내 것 선택 (Accept Current) — 위 코드만 남기고 마커·아래 삭제
2. 상대 것 선택 (Accept Incoming) — 아래 코드만 남기고 마커·위 삭제
3. 둘 다 살리기 (Accept Both) — 양쪽 모두 유지, 마커만 제거
4. 새로 작성 — 양쪽 무시하고 새로 (가장 흔함, 둘 다 부족할 때)
해결 후:
> 💡 IDE 추천: VS Code·IntelliJ 에 충돌 해결 GUI 내장. 'Accept Both' 버튼이 가장 안전.
Git Stash — 작업 임시 서랍
시나리오: feature/login 작업 중인데 운영 버그 → 지금 고쳐야 함
해결:
기타 명령:
- ▸
git stash list— 서랍 목록 보기 - ▸
git stash show -p— 변경 내용 미리보기 - ▸
git stash drop— 서랍 비우기 (복구 불가) - ▸
git stash apply— pop 과 같지만 서랍에 남김
> ⚠️ stash 가 너무 쌓이면 잊혀짐. 작업 후 즉시 pop 또는 commit 으로 정리 권장.
🤖 AI 에게 이렇게 요청해보세요
이 lesson 의 개념을 알면 AI 에게 구체적으로 지시할 수 있습니다. 막연한 "고쳐줘" 가 아니라 어휘를 가진 요청 — 그게 토큰 절약의 출발점입니다.
- ▸"이 hotfix 를 main 으로 머지하는 안전한 git revert 절차 알려줘"
- ▸"이 feature 브랜치의 커밋들을 squash + rebase 로 정리해줘"
왜 이게 토큰을 줄이나
개념을 모를 땐 AI 답변을 받고도 "그게 뭐예요?" 를 다시 물어야 합니다. 그 "다시 물음" 이 토큰을 잡아먹습니다. 개념 한 번 익혀두면 대화가 한 번에 끝납니다.