해당 게시물은 [제대로 파는 Git & GitHub - by 얄코]를 수강한 내용을 바탕으로 작성하였습니다.
브랜치 간 충돌
상황 만들기
1. conflict-1, conflict-2 브랜치 생성
2. main 브랜치
- Tigers의 manager를 Kenneth로 변경
- Leopards의 coach를 Nicholas로 변경
- Panthers의 coach를 Shirley로 변경
- 커밋 메시지: Edit Tigers, Leopards, Panthers
3. conflict-1 브랜치
- Tigers의 manager를 Deborah로 변경
- 커밋 메시지: Edit Tigers
4. conflict-2 브랜치 1차
- Leopards의 coach를 Melissa로 변경
- 커밋 메시지: Edit Leopards
5. conflict-2 브랜치 2차
- Panthers의 coach를 Raymond로 변경
- 커밋 메시지: Edit Panthers
1. merge 충돌 해결하기
git merge conflict-1로 병합을 시도하면 충돌 발생
- 오류 메시지와 git status 확인
- VS Code에서 해당 부분 확인
현재 버전에서는 노랗게 표시한 부분 안 나타나므로 충돌 시 직접 타이핑해서 수정한 다음 merge
당장 충돌 해결이 어려울 경우 아래 명령어로 merge 중단
해결 가능 시 충돌 부분을 수정한 뒤 git add ., git commit으로 병합 완료
2. rebase 충돌 해결하기
conflict-2에서 git rebase main로 리베이스 시도하면 충돌 발생
- 오류 메시지와 git status 확인
- VS Code에서 해당 부분 확인
당장 충돌 해결이 어려울 경우 아래 명령어로 rebase 중단
해결 가능 시
- 충돌 부분을 수정한 뒤 git add .
- 아래 명령어로 계속
충돌 부분 수정 후...
Q. 두마디짜리 브랜치를 rebase했는데 결과에는 왜 한마디만 추가되어 있나요?
충돌 해결 중 두번째 것에서는 current, 즉 main 브랜치 것(Shirley)을 채택했기 때문에
(즉 rebase가 의미가 없어졌으므로)
커밋으로 추가할 필요가 없어졌기 때문!!!
main에서 git merge conflict-2로 마무리
conflict-1, conflict-2 삭제
<SourceTree로 진행해보기>
1. 브랜치 만들고 merge, rebase 하기
1. to-merge, to-rebase 브랜치 생성
- 상단의 브랜치 버튼 클릭
- 왼쪽의 브랜치 탭에서 클릭하여 이동
2. main 브랜치
- Tigers의 manager를 Brenda로 변경
- 커밋 메시지: Edit Tigers manager
3. to-merge 브랜치
- Tigers의 coach를 Ruth로 변경
- 커밋 메시지: Edit Tigers coach
4. to-rebase 브랜치
- Tigers의 memebers에 Tyler 추가
- 커밋 메시지: Edit Tigers members
⭐️ 브랜치를 이동하며 파일 살펴보기
5. to-merge 브랜치를 main으로 merge
- main에 위치한 뒤 to-merge 브랜치를 우클릭하여 Merge ... 클릭
6. to-rebase 브랜치를 main으로 rebase
- to-rebase에 위치한 뒤 main 브랜치를 우클릭하여 ... 재배치 클릭
- main에 위치한 뒤 to-rebase 브랜치를 우클릭하여 Merge ... 클릭
7. main으로 이동 후 to-merge와 to-rebase 우클릭하여 삭제
- merge되지 않은 브랜치의 경우 강제 삭제 체크박스 선택
2. merge 충돌 해결해보기
💡 rebase는 충돌 가능시 CLI로 진행 권장
1. conflict 브랜치 생성
2. main 브랜치
- Tigers의 members에 Kim 추가
- 커밋 메시지: Edit Kim to Tigers
3. conflict 브랜치
- Tigers의 members에 Park 추가
- 커밋 메시지: Edit Park to Tigers
4. merge하여 충돌 해결해보기
충돌 해결 후... (main 브랜치의 Kim 선택)
conflict 브랜치 들어가서 commit
5. conflict 브랜치 삭제