/* Merge 종류 */
PR을 올리고 담당자는 merge를 어떤 식으로 할 지 결정을 해야 한다.
사진에서 처럼 Github에서는 3가지의 Merge 전략이 있다.
- Merge Commit
- Squash and merge
- Rebase and merge
/* Merge Commit*/
일반적으로 많이 사용되는 merge 전략이다.
예시를 보면 feature 브랜치를 main 브랜치에 merge하고자 할 때 Git은 자동으로 새로운 merge commit을 생성합니다. merge commit은 두 브랜치의 변경 사항을 포함합니다. 따라서 두 브랜치 사이에는 충돌이 없어야 합니다.
해당 merge 전략의 장점은 두 브랜치의 history를 보존하고 조회할 수 있습니다.
/* Squash And Merge*/
feature A 브랜치를 main 브랜치에 squash and merge 하고자 할 때, feature A 브랜치의 모든 커밋들이 하나의 커밋으로 압축된다.
git checkout main
git merge --squash bugfix
git commit
command를 통해 하려면 위의 코드와 같이 하면 된다. squash를 하면 main 브랜치에 커밋하기 위해 git commit 을 사용한다.
해당 squash and merge 전략의 장점은 히스토리를 단순화할 수 있습니다.
/* Rebase and merge */
두 개의 브랜치를 병합하려고 할 때, 왼쪽을 보면 우리가 첫번 째가 다루었던 'merge and commit' 이다.
rebase and merge를 이용한다면 보라색 브랜치를 노란색 브랜치의 최신 커밋 위로 옮긴다. (커밋들은 그대로 보존한다)
rebase and merge는 커밋 히스토리가 한 줄로 정리되어 프로젝트 히스토리 조회가 편리합니다.
rebase and merge는 커밋의 해시 값을 변경하므로 주의해야 한다.
'깃허브' 카테고리의 다른 글
[Git] 브랜치 전략 - Git Flow (0) | 2024.03.29 |
---|---|
[Git] Github Actions - CI 작성 (0) | 2024.02.22 |
[Git] 깃 정리 #1 (1) | 2024.02.10 |
[Github] git branch - command에서 가져오기, 병합하기, 삭제하기 (1) | 2023.10.18 |