HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📝
남득윤 학습 저장소
/
🆚
VS 모음
/
🆚
머지, 리베이스, 체리 픽
🆚

머지, 리베이스, 체리 픽

 
머지, 리베이스 - 모두 브랜치를 합치기 위한것
머지 - 커밋을 새로 생성해서 합친다.
리베이스 - 브랜치의 베이스를 재 설정하여 합친다.
 

Fast Foward Merge

notion image
 
로그인 개발을 마.닏습니.a msetr브 치에 합치고 feat/login 브랜치는 제거합시다.
notion image
 
notion image
마스터 브랜치가 로그인 기능을 구현 완료한 commit 까지 따라온다.
이때 머지 방식으로 master 브랜치에서 feat/login 브랜치 까지 따라가기만 하면 되기 때문에
즉, 두 브랜치의 베이스(c1)가 같기 때문에
Fast-foward 방식이 적용 되었다.
 
개발을 완료한 브랜치를 지우자
notion image
notion image

위 방식에는 단점이 있습니다.
Fast Foward 방식이 적용되어 브랜치 까지 지우고 나면 위 히스토리는 너무 깔끔해서 개발 과정이 드러나지 않니다. 따라서 머지 시에 --no-ff 옵션을 사용하여 명시적인 머지 커밋을 남겨주는 것도 좋은 방법입니다.
같은 커밋 히스토리에서 개발을 마친 후 —no-ff 옵션을 사용해봅시다.
notion image
notion image
notion image
recursive 방식이 적용되고 선형적이지 않은 커밋 히스토리를 가지게 되었습니다.

3Way- Merge (Recursive)

notion image
 
마찬가지로 로그인 개발을 하던중 버그가 발생해 개발자들이 빠르게 수정하여
master branch 의 변경점이 생겨 버렸습니다.
 
지금은 앞선 경우와 상황이 다릅니다. 머지하고자 하는 feat/login 브랜치를 타고타고 올라가도 현재 master 브랜치를 만날 수 없습니다.
 
하지만 같은 방식으로 병합을 시도해 보겠습니다.
notion image
notion image
다행히 충돌 없이 병합이 완료 되었습니다.
 
notion image
브랜치를 제거 하여도 선형적이지 않은 커밋 히스토리가 남습니다.
 
 

Github 의 머지 방식

  • Create merge commit
notion image
notion image
 
  • Squash and merge
notion image
notion image
  • Rebase and merge
notion image
notion image
 
 
 
 
 

리베이스

notion image
corine 브랜치를 복사하여 upstream/main 브랜치의 뒤에 연이어 붙인다.
corine 브랜치를 복사하여 upstream/main 브랜치의 뒤에 연이어 붙인다.
Rebase 는 현재 브랜치의 base 를 바꾸겠다는 것
생성된 커밋들은 새롭게 복사되어 base 가 변경된다.
 

체리 픽

  • 다른 브랜치 커밋을 내 브랜치로 가져 오는것
기능 2에 대한 커밋만 main 브랜치에서 가져오고싶다.
기능 2에 대한 커밋만 main 브랜치에서 가져오고싶다.
 
방법 1
notion image
방법2
notion image