Merge 브랜치 병합하기
여러 사람이 작업할 경우 각각의 feature branch에서 작업한 결과물을 최종적으로 main branch에 결합한다.
이 때 git merge를 이용하여 브랜치들을 단일화된 소스로 결합하게 된다.
merge에는 크게 2가지 방법이 있다.
1. Fast Forward Merge
- 현재의 HEAD 브랜치에 병합한다. (현재 우리가 있는 위치)
2. Commit Merge
- 새로운 commit으로 병합한다.
Fast Forward Merge
HEAD 따라잡기
2개의 브랜치 중 하나는 첫번째 브랜치가 가지고 있지 않은 추가 commit을 가지고 있다.
이럴 때 뒤에 있는 브랜치로 이동하여 합쳐질 branch를 merge하면 앞서있는 commit으로 HEAD가 옮겨진다.
ex) master에 bugfix 브랜치를 병합
git switch master
git merge bugfix
🦑 git Kraken으로 시각화
- merge-test-branch에 추가 commit 2개 생성
- master로 이동후 'git merge merge-test-branch'
> master가 merge-test-branch의 두 commit을 따라잡고 이동하여 같은 commit을 참조하고 있다.
Fast Forward Merge는 중간에 다른 commit이 없을 때만 가능하다.
만약 위의 상황에서 master에 새로운 작업을 했거나, 다른 branch가 merge되어서 새로운 commit이 생겼다면
Merge commit 방식으로 merge를 해야한다.
Commit Merge
새로운 commit을 생성하여 merge
새로운 branch에서 작업 후 main에 merge를 하려는데 main에 새로운 commit이 있는경우
새로운 commit이 생성되어 2개의 branch가 병합이 된다.
ex)
- master에서 분기된 commit-merge-test 브랜치에 2개의 commit이 존재
- master에도 새로운 변경사항이 생겨 commit이 추가
conflict 해결
새로운 commit으로 두개의 브랜치를 병합 시 같은 파일의 코드를 수정하게 되면 conflict가 자주 발생 할 수 있다.
Accept Current Change | Accept Incoming Change | Accept Both Changes | Compare Changes
4가지의 선택지가 vscode에서 주어지게 되고 선택지 중에서 하나를 선택하면 변경사항이 반영이된다.
<<<<<<< HEAD
현재 브랜치 변경사항
=======
merge되어지는 브랜치의 변경사항
>>>>>>> commit-merge-test
변경사항을 저장하고 commit하게되면 새로운 conflict해결 commit으로 2개의 브랜치가 완전히 병합되어 진다.
'Archive' 카테고리의 다른 글
[SEO] 검색엔진 최적화 (네이버 검색 최적화 설정 방법) (0) | 2022.11.16 |
---|---|
[Regex] 정규 표현식(1) - Quantifier 수량자 (0) | 2022.11.12 |
[Git] Git 사용 기초 ( local-remote / branch-head / push-pull ) (0) | 2022.10.26 |
[React] TDD in reactjs with RTL and Jest - (2)기초 예제 (0) | 2022.10.25 |
[React] Recoil 상태관리 라이브러리 기초 (0) | 2022.09.11 |