WEBBOOK CHAPTER

현장에서 살아남는 Git: 7장 merge는 두 역사의 합류 기록이다

7장 merge는 두 역사의 합류 기록이다

브랜치가 갈라지지 않았다면 merge는 이름만 앞으로 옮기는 fast-forward가 될 수 있다. 양쪽에 커밋이 있으면 공통 조상을 기준으로 세 방향 병합하고 보통 merge commit을 만든다.


git switch main
git merge --no-ff feature/reviewer
git log --oneline --graph --decorate --all

--no-ff가 항상 우월하지는 않다. 짧은 브랜치의 경계를 기록하려는 팀 규칙이라면 쓴다. 선형 이력을 선호하면 fast-forward나 rebase를 택한다. 도구가 아니라 팀의 리뷰와 복구 요구가 기준이다.

SourceTree에서 대상 브랜치를 먼저 checkout한 뒤 Merge를 선택한다. IntelliJ에서도 현재 브랜치로 무엇을 합칠지 읽는다. “A를 B에 병합”이라는 문장이 헷갈리면 CLI 문장으로 번역한다. mainfeature/reviewer를 합치려면 현재 브랜치는 main, 명령 인수는 feature/reviewer다.