git merge & rebase

지은·2023년 6월 2일
0

Git

목록 보기
5/5
post-thumbnail

Git은 여러 개발자가 원활하게 협업할 수 있도록 돕는 강력한 분산 버전 제어 시스템이다. Git은 코드베이스에 대한 변경 사항을 추적함으로써 개발자가 다양한 버전의 코드를 효과적으로 관리하고 조정할 수 있도록 하고, 개발 프로세스가 체계적으로 유지되도록 한다.
또한 작업 흐름을 간소화하기 위해 git merge와 git rebase와 같은 다양한 작업을 제공한다.

git merge와 git rebase는 둘 다 한 브랜치의 변경 사항을 다른 브랜치로 통합한다는 점에서 같은 목적을 가지고 있지만, 다른 방식으로 수행한다. 각 작업의 장단점을 살펴보자.

git merge

: source 브랜치의 변경 사항을 가져와 target 브랜치에 통합한다.

  • 이때 target 브랜치만 변경되며, 병합 커밋이 생성된다.
  • merge 작업은 주로 다른 개발자들과의 협업할 때 사용하며, feature 브랜치에서의 작업을 main 브랜치로 통합하는 데 사용된다.

git checkout feature
git merge master
git merge master feater # master 브랜치에 feature 브랜치의 변경 사항을 병합한다.

장점

  • 원래 브랜치 히스토리를 유지하므로 개발 프로세스 중에 발생한 모든 변경 사항을 추적할 수 있다.
  • 이렇게 하면 전체 workflow가 투명하게 유지되어 개발자가 모든 수정 사항의 출처를 쉽게 추적할 수 있다.

단점

  • 브랜치가 통합될 때마다 병합 커밋을 생성하는데, 이러한 추가 커밋으로 인해 커밋 기록이 불필요하게 복잡하게 만들 수 있으며 다른 개발자가 프로젝트 기록을 이해하기 어려울 수 있다.
  • 비선형적 커밋 그래프가 생성되므로 프로젝트 기록이 어수선해질 수 있다.
  • 여러 명의 개발자가 동일한 파일에서 작업하고 변경 사항이 겹치는 경우, 충돌을 해결하는 것이 복잡해질 수 있다.

git rebase

: 모든 변경 사항을 단일 patch로 압축하고, target 브랜치에 patch를 통합한다.

  • merge와 다르게 rebase는 완료된 작업을 하나의 브랜치에서 다른 브랜치로 전송하기 때문에 히스토리를 평평하게 만든다.
  • 이렇게 하면 커밋 히스토리가 선형적으로 유지되며, 브랜치를 깔끔하게 유지할 수 있다.
  • rebase 작업은 주로 개인 브랜치에서 커밋 히스토리를 정리하거나, 브랜치를 최신 상태로 유지하고자 할 때 사용된다.
git checkout feature
git rebase master

장점

  • 프로젝트 기록을 훨씬 깔끔하게 유지할 수 있다.
  • 완벽하게 선형적인 프로젝트 기록을 생성한다.

단점

  • 공유된 리포지토리에서 rebase를 사용하는 것은 팀으로 작업할 때 위험할 수 있다. rebase는 주로 개인 브랜치에서 사용하는 것이 좋다.

The Unending Debate: Git Merge or Rebase?
Understanding Git Merge and Git Rebase

profile
개발 공부 기록 블로그

6개의 댓글

comment-user-thumbnail
2023년 6월 3일

저는 git desktop쓰는데 좋더라구여 그래서 위기능 해본 적 없는데 좋아보이네용

답글 달기
comment-user-thumbnail
2023년 6월 3일

merge만 주로 사용해서 잊고 있었는데 정리해주셔서 감사합니다 !

답글 달기
comment-user-thumbnail
2023년 6월 4일

리베이스 잘못 쓰면 대참사 일어나서 아직까지는 merge만 쓰네요,, 무서버

답글 달기
comment-user-thumbnail
2023년 6월 4일

merge만 사용해봤는데 rebase 도 있군요 !!

답글 달기
comment-user-thumbnail
2023년 6월 4일

오 저도 머지만 알고 사용하고 있었는데 하나 더 배워갑니당 상황에 따라서 rebase 사용해보는 것도 좋을 것 같아요!

답글 달기
comment-user-thumbnail
2023년 6월 4일

저도 rebase랑 merge 함께 공부한적있는 겨 같은데도 가물가물하네요.. 다시 봐야겠습니다 감사합니다 ~~

답글 달기