Git

중급 03. Feature → Develop 팀 개발 실무 시나리오

A 브랜치 작업 중 다른 사람의 B 브랜치가 먼저 머지되었을 때의 동기화 방법, 코드 리뷰 반영, 머지 후 브랜치 정리까지 실무 전체 라이프사이클

· 2min read · 2 views
중급 03. Feature → Develop 팀 개발 실무 시나리오

핵심 요약

기능 개발 중 동료 PR이 먼저 머지되어 베이스가 뒤처졌을 때 Rebase를 통한 최신화, PR 작성, 코드 리뷰 반영 및 머지 후 로컬 브랜치 정리 사이클

실제 협업 프로젝트에서 기능(Feature) 브랜치를 운영할 때, 교과서적인 순서대로만 일이 진행되지는 않습니다. 내가 먼저 브랜치를 땄더라도 동료의 작업이 먼저 develop에 머지되는 일은 매일 발생합니다. 이 문서에서는 프롬프트 상의 브랜치 상태(branch-name) $를 명시하여 완벽한 실무 개발 사이클을 다룹니다.


1. 표준 작업 사이클 (Happy Path)

Step 1. develop 최신화 후 feature 분기

# develop 브랜치로 이동 후 원격 최신 변경사항 반영
(main) $ git switch develop
Switched to branch 'develop'

(develop) $ git pull --ff-only origin develop

# 새로운 작업 브랜치 생성 및 이동 (규칙: feature/기능명)
(develop) $ git switch -c feature/order-coupon
Switched to a new branch 'feature/order-coupon'

Step 2. 로컬 개발 및 원자적 커밋(Atomic Commit)

(feature/order-coupon) $ git status
(feature/order-coupon) $ git diff

# 수정된 파일 스테이징 및 커밋
(feature/order-coupon) $ git add app/Services/CouponService.php
(feature/order-coupon) $ git commit -m "feat: 쿠폰 할인 금액 계산 로직 구현"

2. 실무 현실 시나리오: 동료의 PR이 먼저 머지되었을 때

내가 feature/order-coupon을 개발하는 동안, 다른 동료가 feature/order-payment 작업을 끝내고 develop에 먼저 PR을 올려 머지시켰습니다.

develop:                --- C1 --- C2 (동료의 결제 기능 머지 완료)
                               \
feature/order-coupon:           --- C3 --- C4 (내 쿠폰 작업 커밋들)

해결법: 내 브랜치에 최신 develop 베이스 당겨오기 (Rebase)

# 1. 원격 최신 develop 정보 가져오기
(feature/order-coupon) $ git fetch origin develop

# 2. 내 브랜치에 최신 develop을 베이스로 재배치
(feature/order-coupon) $ git rebase origin/develop
Successfully rebased and updated refs/heads/feature/order-coupon.

이렇게 Rebase를 실행하면 내 커밋(C3, C4)이 동료의 커밋(C2) 뒤로 깔끔하게 재배치됩니다:

develop:                --- C1 --- C2
                                     \
feature/order-coupon:                 --- C3' --- C4' (충돌 없이 1자 정렬)

3. 원격 Push 및 Pull Request (PR) 작성

# 첫 푸시 시 upstream(-u) 지정
(feature/order-coupon) $ git push -u origin feature/order-coupon

# 이미 푸시한 상태에서 Rebase를 수행했다면 안전한 강제 푸시
(feature/order-coupon) $ git push --force-with-lease origin feature/order-coupon

4. 코드 리뷰 피드백 반영하기

리뷰어가 "할인율 100% 초과 방지 예외 처리를 추가해주세요"라고 요청했습니다.

# 코드 수정 후
(feature/order-coupon) $ git add app/Services/CouponService.php
(feature/order-coupon) $ git commit -m "fix: 쿠폰 최대 할인율 초과 예외 처리 추가"

# 원격 푸시 (PR에 자동으로 새 커밋이 추가됨)
(feature/order-coupon) $ git push origin feature/order-coupon

5. 머지 완료 후 깔끔한 로컬 정리

PR이 승인(Approved)되어 develop에 머지되었다면, 내 로컬 환경에서도 다 쓴 브랜치를 깨끗하게 청소합니다.

# 1. develop 브랜치로 이동
(feature/order-coupon) $ git switch develop
Switched to branch 'develop'

# 2. 내 작업이 머지된 최신 develop 가져오기
(develop) $ git pull --ff-only origin develop

# 3. 로컬의 feature 브랜치 안전 삭제 (-d는 머지 확인 후 삭제)
(develop) $ git branch -d feature/order-coupon
Deleted branch feature/order-coupon (was 8e2d4a1).

# 4. 원격에서 삭제된 브랜치 흔적 로컬 캐시에서 청소
(develop) $ git fetch --prune

Related Docs

Comments (0)

No comments yet. Be the first to comment!

Leave a Comment

로그인 후 댓글을 남길 수 있습니다.