브랜치 간 충돌이 발생하는 이유
파일의 같은 위치에 다른 내용이 입력된 상황
같은 파일인데 같은 위치(줄)에 서로 다른 내용이 입력되면, 컴퓨터는 둘 중 어떤 걸 병합할지 결정을 못하게 된다.
해결하기 위해서는 직접 파일을 수정해서 충돌한 부분을 해결해주어야 한다.
<브랜치 충돌 해결 실습>
merge conflict 발생한 모습.


vscode에서는 위와 같이 알려준다. 충돌이 난 부분들이 여러 개 있고 editor에서 "<<<<"를 검색해서 충돌한 부분을 찾을 수 있다. Accept Current Change를 누르면 현재의 내용으로 결정된다. Accept Incoming Change는 아래의 부분, Both는 양쪽 다 남는다.
저렇게 다른 부분이 있으니 어떤 걸로 결정할건지 물어보는 것이다. 원하는대로 결정하도록한다.
만약 충돌된 부분이 너무 많아서 당장 어찌하지 못하겠다고 한다면, 아래의 명령어를 통해 merge를 중단하면 된다.
git merge --abort

merge와 rebase의 차이는 merge의 경우 양쪽 브랜치를 한 번 붙이는 것이기에 커밋 한 번에 끝낼 수 있다. 그러나 rebase의 경우 브랜치 안에 있는 커밋들을 하나씩 가져와서 붙이기 때문에 매번 커밋이 필요하다.
이제 rebase도 한 번 진행해보자.


충돌난 부분은 직접 수정해주면 된다.
merge에서와 똑같이 당장 충돌 해결이 어려울 경우 아래 명령어로 rebase를 중단한다.
git rebase --abort
만약 해결이 가능할 시에는
- 충돌 부분을 수정한 뒤 git add .
- 아래 명령어를 사용하여 계속해서 수정한다
git rebase --continue
- 충돌을 모두 해결할 때까지 반복하면 된다.
- 다 사용한 branch는 삭제해서 지저분하지 않게 하기!!
'출입금지!! 개인공부방 > Git' 카테고리의 다른 글
| GitHub 원격저장소 사용하기 (0) | 2023.08.03 |
|---|---|
| GitHub는 무엇일까? (0) | 2023.08.03 |
| (git) branch를 합치는 방법(merge, rebase) (0) | 2023.08.02 |
| (git) branch 만들어보기 (0) | 2023.08.02 |
| (git) 버전 되돌리기 (0) | 2023.08.02 |