EP.6
Git: 머지 vs 리베이스
혹시 팀에서 PR을 올렸는데 리뷰어가 "커밋 히스토리 정리 좀 해주세요"라고 요청한 적 있으신가요? 아니면 다른 PR에 머지 커밋이 너무 많아서 코드 리뷰가 어려웠던 경험은요? 또는 팀에 합류했을 때 "우리는 PR 병합할 때 스콰시를 사용합니다"라는 규칙을 들은 적 있으신가요?
이런 상황들의 배경에는 깃 머지와 깃 리베이스라는 두 가지 명령어가 있습니다. 결과적으로는 하나의 브랜치를 다른 브랜치로 합친다는 비슷한 일을 하지만, 접근 방식이 완전히 다르기 때문에 개발자들 사이에서 의견이 갈리곤 하죠.
사실 저도 여러 팀에서 일하면서 이 두 방식을 둘러싼 긴장이나 갈등을 직접 경험한 적이 있습니다. 머지를 선호하는 개발자와 리베이스를 선호하는 개발자가 같은 팀에 있으면, 서로의 방식을 이해하지 못해 불편한 상황이 생기기도 하거든요.
그런데 중요한 건, 이 둘 중에 절대적인 정답은 없다는 거예요. 각각의 방식은 나름의 철학과 장단점을 가지고 있고, 상황과 팀의 문화에 따라 더 적합한 선택이 달라질 수 있습니다.
이번 에피소드에서는 먼저 깃 머지와 깃 리베이스의 기본 개념을 살펴보고, 그 다음 PR 작업 중과 PR 병합 시 각각 어떤 선택을 할 수 있는지, 그리고 그 선택이 어떤 영향을 미치는지 깊이 있게 다뤄보려고 합니다.
챕터
- 00:00 머지 vs 리베이스, 왜 개발자들의 의견이 갈릴까?
- 01:59 Git merge는 어떻게 동작할까?
- 03:42 Merge의 장점과 단점
- 04:28 Git rebase는 어떻게 동작할까?
- 05:49 선형 히스토리와 Interactive Rebase
- 07:14 Rebase가 위험할 수 있는 이유
- 09:52 PR 작업 중 main의 최신 변경 사항 가져오기
- 10:22 Merge로 PR을 동기화하면 생기는 문제
- 12:39 Rebase로 PR 히스토리를 깔끔하게 유지하기
- 13:52 코드 리뷰 관점에서 Merge vs Rebase
- 15:34 PR을 최종 병합하는 세 가지 방법
- 17:05 Rebase and merge
- 18:14 Squash and merge
- 20:02 어떤 병합 방식을 선택해야 할까?
- 20:45 팀의 Git 전략을 컨벤션으로 만들기
- 21:14 Merge와 Rebase 정리
- 22:04 PR 작업 방식과 병합 방식은 달라도 된다
달레줄레
- [GitHub](https://github.com/DaleJule)
- [GitHub Discussions](https://github.com/orgs/DaleJule/discussions)
- [YouTube](https://youtube.com/playlist?list=PLapoeRAdKitf4M7HOGIDzwNtsfo6ZqO8W)
- [Apple Podcast](https://dales.link/applepodcast)
- [팟빵](https://www.podbbang.com/channels/1784466)
- [audioclip](https://audioclip.naver.com/channels/9977)
음악
Bliss by Luke Bergs | https://soundcloud.com/bergscloud/
Creative Commons - Attribution-ShareAlike 3.0 Unported
https://creativecommons.org/licenses/by-sa/3.0/
Music promoted by https://www.chosic.com/free-music/all/