MyAI(마이아이)개발 · 제품 · 운영 학습 노트

협업: Commit, Push, PR, Code Review

Commit과 Push의 차이

Commit
= 내 Local Repository에 기록

Push
= Remote Repository에 공유

Local에서 Commit만 하고 Push하지 않았다면 일반적인 협업자는 그 Commit을 볼 수 없다.

Local Branch를 만들기만 하면?

Remote에는 아직 없다.

Local
feature/camera

Remote
없음

첫 Push:

git push -u origin feature/camera

이제 협업자가 fetch해서 볼 수 있다.

Push만으로도 리뷰할 수 있나?

가능하다.

Branch Push
→ 협업자가 fetch
→ 직접 branch checkout
→ 확인

하지만 체계적인 리뷰는 PR이 편하다.

Pull Request의 역할

PR은 단순히 Merge 버튼이 아니다.

즉:

Push = 작업 공개
PR = 공식 리뷰 프로세스 시작

Draft PR

작업이 끝나기 전에 중간 피드백을 받고 싶다면 Draft PR이 유용하다.

flowchart LR
    D[개발] --> P[Push]
    P --> R[Draft PR]
    R --> F[중간 Feedback]
    F --> D
    D --> RR[Ready for Review]
    RR --> M[Merge]

PR Merge 전에 Branch를 삭제하면?

Local Branch만 삭제

Remote Branch가 남아 있다면 PR에는 보통 영향이 없다.

Remote Head Branch 삭제

PR의 Source가 사라지므로 정상적인 업데이트/통합 흐름이 깨진다.

따라서 기본 순서:

개발
→ Push
→ PR
→ Review
→ Merge
→ Branch 삭제

같은 Branch를 여러 개발자가 공동 작업

기술적으로 가능하다.

하지만 각자 Commit을 만든 뒤 Push하면 자주 non-fast-forward가 발생한다.

Developer A: C ─ A1
Developer B: C ─ B1

B는 A1을 먼저 통합해야 Push할 수 있다.

일반적으로는:

Developer A → feature/camera-core
Developer B → feature/camera-ui
                 ↓
                PR

처럼 책임을 분리하는 편이 안정적이다.

Code Review와 Peer Review

좋은 협업은 “완료 후 검수”만 있는 것이 아니라 설계 → 중간 → 코드 → 통합의 여러 검증 단계가 있다.