git Conflict(충돌)는 왜 일어날까? 과정 알아보기

git
블로그 이미지

이챙(leechaeng)

﹒2021. 11. 9.

index.html을 branch1branch2브랜치를 나누어서 작업을 한다고 가정할때 두 브랜치가 같은 라인 코드를 수정 후 커밋을 합니다. 그리고 작업이 다 끝나면 master에서 이 브랜치들을 merge 하겠죠. 그러면 이때 conflict가 발생합니다.
master입장에선 '둘다 같은 라인 코드 수정했네? 난 몰라~ 확인하고 다시수정해줘" 라고 생각해요
master는 두 브랜치가 동일한 라인에 코드를 수정했으니 어떤 코드를 결정해줘야 할지 모르기 때문이에요. 그래서 수동으로 우리가 결정해줘야 합니다. 이 과정을 conflict 충돌 났다 라고 합니다
예제를 통해 자세히 알아봅시다

 

branch1 , branch2 두개의 브랜치를 만들어주었어요


브랜치를 차례대로 checkout 하여 txt 파일에 똑같이 5번째 라인에 내용을 적고 커밋해주었습니다
마스터로 다시 이동해서 브랜치를 merge해볼까요!



branch1 merge 후 branch2를 merge 하니까 conflict가 일어났어요.
conflit옆에 test.txt파일 안에서 merge conflict가 일어났어 라고 알려주고 있죠?
git은 아주 친절해요 test 파일로 가봅시다


<<<<<<HEAD가 현재 마스터브랜치의 최신 커밋내용이고
===== ~ >>>>>branch2 가 merge 하려는 브랜치의 내용이에요
그럼 우리는 여기서 저 표시내용은 다 지우고 사용할 코드만 남겨주면 됩니다.
git 이 우리가 수정해서 결정하도록 결정권을 넘겨주는 거죠



이런식으로 수정후 commit 후 push 해주면 충돌없이 merge가 됩니다.

conflict는 자주 일어나기 때문에 이러한 과정을 알고있어야 합니다.
그래야 conflict가 일어나도 당황하지 않고 해결할 수 있으니까요!

이챙(leechaeng)
이챙(leechaeng)

프론트엔드 개발도 하고 뛰기도 하고

'git' 카테고리의 관련 글