서로 다른 브랜치를 합치는 두 방식
merge : 두 브랜치를 한 커밋에 이어붙입니다.
브랜치 사용내역을 남길 필요가 있을 때 적합한 방식입니다.
다른 형태의 merge에 대해서도 이후 다루게 될 것입니다.
rebase : 브랜치를 다른 브랜치에 이어붙입니다.
한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합합니다.
이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋습니다.
1. merge로 합치기
add-coach 브랜치를 main 브랜치로 merge
main 브랜치로 이동
아래의 명령어로 병합
git merge add-coach
:wq로 자동입력된 커밋 메시지 저장하여 마무리
소스트리에서 확인
merge는 reset으로 되돌리기 가능
merge도 하나의 커밋
merge하기 전 해당 브랜치의 마지막 시점으로
병합된 브랜치는 삭제
삭제 전 소스트리에서 add-coach 위치 확인
git branch -d add-coach
2. rebase로 합치기
new-teams 브랜치를 main 브랜치로 rebase
new-teams 브랜치로 이동
🛑 merge때와는 반대!
아래의 명령어로 병합
git rebase main
소스트리에서 상태 확인
main 브랜치는 뒤쳐져 있는 상황
main 브랜치로 이동 후 아래 명령어로 new-teams의 시점으로 fast-forward
git merge new-teams
new-teams 브랜치 삭제
브랜치 간 충돌
파일의 같은 위치에 다른 내용이 입력된 상황
상황 만들기
conflict-1, conflict-2 브랜치 생성
main 브랜치
Tigers의 manager를 Kenneth로 변경
Lions의 coach를 Nicholas로 변경
Panthers의 coach를 Shirley로 변경
커밋 메시지: Edit Tigers, Lions, Panthers
conflict-1 브랜치
Tigers의 manager를 Deborah로 변경
커밋 메시지: Edit Tigers
conflict-2 브랜치 1차
Lions의 coach를 Melissa로 변경
커밋 메시지: Edit Leopards
conflict-2 브랜치 2차
Panthers의 coach를 Raymond로 변경
커밋 메시지: Edit Panthers
merge 충돌 해결하기
git merge conflict-1로 병합을 시도하면 충돌 발생
오류 메시지와 git status 확인
VS Code에서 해당 부분 확인
당장 충돌 해결이 어려울 경우 아래 명령어로 merge 중단
해결 가능 시 충돌 부분을 수정한 뒤 git add ., git commit으로 병합 완료
rebase 충돌 해결하기
conflict-2에서 git rebase main로 리베이스 시도하면 충돌 발생
오류 메시지와 git status 확인
VS Code에서 해당 부분 확인
git rebase --abort
당장 충돌 해결이 어려울 경우 아래 명령어로 merge 중단
해결 가능 시
충돌 부분을 수정한 뒤 git add .
아래 명령어로 계속
git rebase --continue
충돌이 모두 해결될 때까지 반복
main에서 git merge conflict-2로 마무리
conflict-1, conflict-2 삭제
'Git' 카테고리의 다른 글
Git-3가지 공간 (0) | 2022.05.09 |
---|---|
Git-GitHub (0) | 2022.05.07 |
Git-branch (0) | 2022.05.06 |
Git-Commit ,Reset,Revert (0) | 2022.05.06 |
Git-gitignore (0) | 2022.05.06 |