Merge와 Rebase는 두 가지 다른 방식으로 브랜치를 통합하는 Git 작업입니다. 아래 예시를 통해 Merge와 Rebase의 차이를 설명해 드리겠습니다.

예시 상황:

  1. develop 브랜치에서 새로운 기능을 개발하고 있는 feature 브랜치가 존재합니다.
  2. develop 브랜치에서 다른 개발자들이 동시에 작업을 진행하고 있습니다.

Merge 예시:

  1. 개발이 완료된 feature 브랜치를 develop 브랜치에 통합하려고 합니다.
  2. develop 브랜치로 이동한 후, feature 브랜치를 develop 브랜치에 병합합니다.
  3. sqlCopy code git checkout develop git merge feature
  4. Git은 병합 커밋을 생성하여 feature 브랜치의 변경 내용을 develop 브랜치에 반영합니다.
  5. 이후 develop 브랜치에는 feature 브랜치의 변경 내용과 develop 브랜치의 변경 내용이 함께 포함된 커밋 히스토리가 생성됩니다.

git checkout develop
git merge feature

Rebase 예시:

  1. 개발이 완료된 feature 브랜치를 develop 브랜치에 통합하려고 합니다.
  2. develop 브랜치로 이동한 후, feature 브랜치를 develop 브랜치에 리베이스합니다.
  3. Copy code git checkout develop git rebase feature
  4. Git은 feature 브랜치의 변경 내용을 develop 브랜치 위로 이동시킵니다.
  5. feature 브랜치의 변경 내용을 순차적으로 develop 브랜치 위에 재적용하며, 새로운 커밋 히스토리를 생성합니다.
  6. 이후 develop 브랜치에는 feature 브랜치의 변경 내용이 develop 브랜치의 변경 내용 위에 추가되어 있는 커밋 히스토리가 생성됩니다.
git checkout develop
git rebase feature

 

 

요약:

  • Merge는 병합 커밋을 생성하여 두 브랜치의 변경 내용을 통합합니다.
  • Rebase는 기존 커밋을 재배치하여 한 브랜치의 변경 내용을 다른 브랜치 위로 옮깁니다.

Merge는 브랜치를 보다 명확하게 유지하면서 통합할 때 유용하며, Rebase는 브랜치를 깔끔하게 유지하면서 통합할 때 유용합니다. 어떤 방식을 선택할지는 팀의 작업 흐름과 개발자의 선호도에 따라 다를 수 있습니다.

+ Recent posts