병합
- 분리된 브랜치를 한 브랜치로 합치는 작업
자동 병합
- 원본 기준으로 두 파일의 변경 이력을 비교하여 변경된 파일 내용이 발견되면 자동으로 수정된 코드 내용을 병합
- 자동으로 반영하지 못하는 것들은 충돌이 발생
병합 방식
- merge
- fast--forward 병합
- 브랜치 경로가 일직선일 경우의 브랜치에서 병합 작업을 할 때
- 자식 branch의 시작 커밋을 부모 branch 이후의 커밋으로 가리킨다.
- 3-way 병합
- 공통 조상을 가지는 두 자식branch를병합하는 방식
- git은 공통 조상 커밋을 자동으로 찾아주며, 공통 조상을 기준으로 branch를 병합한다.
- 병합을 성공적으로 완료한 후 새로운 커밋(병합 커밋)을 새로 생성한다.
- fast--forward 병합
- rebase
- 시간 순의 순차적 나열이 아닌 기준 브랜치의 마지막 커밋으로 재정렬
- 두 브랜치 서로 비교하지 않고 순차적으로 커밋 병합
- 보통 master or main 브랜치에는 사용하지 않는 것으로 한다.
- 잘못 활용할 경우 소스 이력이 꼬일 수 있다.
충돌
- 충돌의 원인은 다른 사람과 같은 위치의 코드를 동시에 수정시에 발생
- 충돌을 해결하면, 파일은 modified 상태가 되는데, 이를 다시 스테이지 영역에 등록하고 병합 커밋을 직접 만들어야 한다.
'Git' 카테고리의 다른 글
[Git 교과서] 10장 배포 관리와 태그 (0) | 2023.07.07 |
---|---|
[Git 교과서] 9장 복귀 (0) | 2023.06.29 |
[Git 교과서] 7장 Stash (0) | 2023.06.15 |
[Git 교과서] 6장-2 Branch (0) | 2023.06.03 |
[Git 교과서] 6장-1 Branch (0) | 2023.05.27 |