브랜치 간 충돌
[충돌 상황 만들기]
1. conflict-1, conflict2 브랜치 생성

2. main 브랜치
커밋 메시지 : Edit tottenham, liverpool, manU
3. conflict-1 브랜치
커밋 메시지 : Edit tottenham
4. conflict-2 브랜치 1차
커밋 메시지 : Edit liverpool
5. conflict-2 브랜치 2차
커밋 메시지 : Edit manU

소스트리에서 보면 이런 상태.
여기서 merge를 해보자.
git merge conflict-1로 병합을 시도하면 충돌 발생.

충돌 발생.
현재의 브랜치에서는 이렇게 말하던데...(초록색 부분)
merge한 브랜치에서는 저렇게 말하네(파란색 부분)
둘 중에 뭘 선택할까?라고 함.
만약, main 브랜치의 내용을 고수하겠다면
초록색 부분 위의 '현재 변경 사항 수락' 클릭.
만약, 충돌된 부분이 워낙 많아서 해결이 어려울 경우,
아래의 명령어로 merge 중단.
git merge --abort
이렇게 하면 merge가 중단되고 평온한 main의 상태가 됨.
다시 conflitc-1을 merge하면,
충돌이 발생. 충돌을 해결한 후에
git add .와 git commit으로 병합 완료.


커밋 메시지는 이미 만들어져 있음. ctrl + w 누르고 나오기.

소스트리에서 확인하면, 아까 갈라져 있던 애들이 잘 합쳐져 있음.

conflict-2 브랜치로 이동 후, rebase 해주면
오류가 뜸.
두 브랜치에서 동시에 이 파일을 수정하려고 한다는 경고. 해결해달라는 것.
일단 충돌이 발생한 파일에 들어가서, 이번엔 '수신 변경 사항 수락'을 누르고 저장.
해결 가능 시
git rebase --continue
↓ ctrl + w로 빠져 나오기.


충돌이 하나 더 발생함.

마찬가지로 충돌난 파일에 들어가서 이번엔 '현재 변경 사항 수락'을 누른 뒤, 저장.
git add .와 git rebase --continue를 통해서 해결.

해결 완.
소스트리에서 보면 main 브랜치가 뒤처져 있음.


나뭇가지의 맨 끝에, 최신 커밋에 위치함.

conflict-1, conflict-2 브랜치 삭제하기.

깔끔하게 main만 남아있음.
결론 : 다 사용한 브랜치는 제때 지워주기. 그래야 혼란 없다.