git fetch, git rebase, git pull 차이와 실전 사용법git fetch – "최신 정보를 가져오기만 해!"git fetch origin
.git 디렉토리 내부의 정보를 최신화git log origin/main 혹은 git diff origin/main 등으로 확인 가능git rebase – "내 작업을 최신 커밋 위에 깔끔하게 다시 올려줘"git rebase origin/main
rebase 전략을 쓰는 경우rebase는 공유된 브랜치에서는 신중히!git push --force가 필요할 수 있음. 잘못 쓰면 동료의 작업이 날아갈 수 있음.git pull – "최신 걸 가져오고 바로 병합해줘"git pull origin main
git fetch + git merge를 한 번에 수행git fetch origin
git rebase origin/main
✔️ 충돌을 내가 직접 해결하면서 커밋 히스토리를 깔끔하게 유지할 수 있음
git pull origin main
✔️ 단, 히스토리 관리에 민감하지 않을 때만
| 명령어 | 원격 변경사항 반영 | 로컬 히스토리 변경 | 충돌 해결 방식 |
|---|---|---|---|
git fetch | ❌ (보기만 함) | ❌ | 없음 |
git rebase | ✅ | ✅ (히스토리 수정) | 직접 해결 필요 |
git pull | ✅ | ✅ (병합) | 자동 or 수동 병합 |
예전엔 git pull만 써도 충분했지만,
협업이 잦아지고 충돌/히스토리 문제가 늘어나면서
fetch + rebase 조합을 더 많이 쓰게 되더라구요.
실제로 큰 서비스팀에서 일할수록, 커밋 하나하나가 버그 추적의 단서가 되기 때문에
rebase를 쓰는 게 디폴트인 팀도 많아요.