github Rebase and Merge를 사용하지 말자

White Piano·2023년 6월 30일
0

github에 A-ToDo-Client repo를 구성하면서 branch 전략을 고민했다. git flow를 기본으로(release branch 생략) rebase를 통해 선형적인 history를 유지하기로 마음먹었다.

develop에서 master로의 첫 번째 rebase는 문제없었지만, 두 번째 rebase에서 충돌이 발생했다. master에 변경 점이 없는데 충돌이라니? 납득할 수 없었다.

git tree를 확인해 보니 develop을 master로 rebase 한 후, master가 rebase되지 않았던 걸 발견했다. 대신, develop의 history를 기반으로 새로운 commit이 생겼다. 이게 무슨 말도 안 되는 일인가! 그래서 찾아보니 github Rebase and Merge는 git의 rebase와 다르게 동작한다고 한다.

그래서 앞으로 master는 Squash and Merge로 병합하고, Rebase and Merge는 feature -> develop과 같이 합쳐진 branch를 즉시 삭제할 상황이거나 develop -> feature처럼 통합 branch의 변경을 feature에 최신화할 때만 적용할 생각이다. (아무래도 Rebase and Merge는 trunk-based flow에 적합한 방법으로 보인다)

0개의 댓글