Merge와 Rebase는 두 가지 다른 방식으로 브랜치를 통합하는 Git 작업입니다. 아래 예시를 통해 Merge와 Rebase의 차이를 설명해 드리겠습니다.
예시 상황:
- develop 브랜치에서 새로운 기능을 개발하고 있는 feature 브랜치가 존재합니다.
- develop 브랜치에서 다른 개발자들이 동시에 작업을 진행하고 있습니다.
Merge 예시:
- 개발이 완료된 feature 브랜치를 develop 브랜치에 통합하려고 합니다.
- develop 브랜치로 이동한 후, feature 브랜치를 develop 브랜치에 병합합니다.
- sqlCopy code git checkout develop git merge feature
- Git은 병합 커밋을 생성하여 feature 브랜치의 변경 내용을 develop 브랜치에 반영합니다.
- 이후 develop 브랜치에는 feature 브랜치의 변경 내용과 develop 브랜치의 변경 내용이 함께 포함된 커밋 히스토리가 생성됩니다.
git checkout develop
git merge feature
Rebase 예시:
- 개발이 완료된 feature 브랜치를 develop 브랜치에 통합하려고 합니다.
- develop 브랜치로 이동한 후, feature 브랜치를 develop 브랜치에 리베이스합니다.
- Copy code git checkout develop git rebase feature
- Git은 feature 브랜치의 변경 내용을 develop 브랜치 위로 이동시킵니다.
- feature 브랜치의 변경 내용을 순차적으로 develop 브랜치 위에 재적용하며, 새로운 커밋 히스토리를 생성합니다.
- 이후 develop 브랜치에는 feature 브랜치의 변경 내용이 develop 브랜치의 변경 내용 위에 추가되어 있는 커밋 히스토리가 생성됩니다.
git checkout develop
git rebase feature
요약:
- Merge는 병합 커밋을 생성하여 두 브랜치의 변경 내용을 통합합니다.
- Rebase는 기존 커밋을 재배치하여 한 브랜치의 변경 내용을 다른 브랜치 위로 옮깁니다.
Merge는 브랜치를 보다 명확하게 유지하면서 통합할 때 유용하며, Rebase는 브랜치를 깔끔하게 유지하면서 통합할 때 유용합니다. 어떤 방식을 선택할지는 팀의 작업 흐름과 개발자의 선호도에 따라 다를 수 있습니다.
'Deep Dive > DevOps' 카테고리의 다른 글
ec2 서버의 일반적인 로그파일의 위치 (0) | 2023.07.12 |
---|---|
cloud watch 로그 그룹 설정 (0) | 2023.07.09 |
원격저장소에 푸시한 git 커밋내역 지우는 방법 (0) | 2023.07.08 |
AWS 철통 보안 장치 만들기 - AWS 사이트 내 설정 (0) | 2023.07.06 |
ubuntu에 도커 세팅 (0) | 2023.07.05 |