개요
Git Flow 전략을 적용하여 여러 브랜치를 관리하려면 Merge의 옵션을 적절하게 사용하고, 커밋을 최대한 간단하게 하여 알아보기 쉽도록 하는 것이 중요하다.
커밋이 여러 개로 쪼개진다면 돌아갈 수 있는 분기가 많아지지만, 그 브랜치가 다른 브랜치에 Merge되고 관리되어야 한다면 쪼개진만큼 어느 시점으로 돌아가야 할지, 어떤 작업을 했는지 알아보기가 어렵다.
Merge란?
어떤 브랜치를 다른 브랜치에 반영하는 것
커밋 히스토리 관리의 필요성
- 어떤 작업을 했는지 명확하게 함
- 일관된 규칙으로 메시지를 작성
- Rollback 상황에서 대처하기 쉬움
Merge, Squash, Rebase
1. Merge
브랜치를 합치기 위한 명령어
2. Squash
브랜치를 Merge할 때 사용할 수 있는 옵션
3. Rebase
브랜치의 커밋을 재배치하는 것
Merge
- 가장 기본적인 병합 방법
- Merge하려는 브랜치의 모든 커밋을 Merge될 브랜치에 포함시키면서, Merge 커밋 한 개 발생하며 병합
Squash
- Merge하려는 브랜치의 모든 커밋과 Merge 커밋을 한 개로 만들어서 병합
- 그래프에 따로 합쳐지는 선이 생기지 않음
Rebase
- Merge하려는 브랜치의 모든 커밋을 하나로 정리한 후, Merge 커밋 한 개 발생하며 병합
- Merge하려는 브랜치에서 Rebase 작업을 하고, 브랜치를 머지함
git checkout b
git rebase -i HEAD~2
(기준 커밋 선택, rebase)
(커밋 메시지 수정)
git checkout a
git merge --no-ff B
정리
Sqaush
- Merge 하려는 브랜치의 커밋을 하나로 함축(squash)하며 Merge
Rebase
- Merge 하려는 브랜치의 커밋을 하나로 만듦
- 그 후 Merge
728x90
'# Back-End > Git' 카테고리의 다른 글
[Git] 에러 remote: Invalid username or password. fatal: Authentication failed for (0) | 2022.10.07 |
---|---|
[Git] Git Commit을 되돌리기(+ Rebase로 커밋 히스토리 관리하기) (0) | 2022.10.01 |
[Git] Git Flow 전략 (0) | 2021.11.04 |
[Git] remote url 변경 (0) | 2021.10.11 |
[Git] Commit message 작성 규칙 (0) | 2021.05.26 |
[Git] fatal: couldn't find remote ref master (0) | 2021.01.20 |
[Git] 초보 명령어 & 깃허브 프로젝트 가져오기 (0) | 2020.11.08 |