이챙의 개발 log
git Conflict(충돌)는 왜 일어날까? 과정 알아보기
index.html을 branch1과 branch2로 브랜치를 나누어서 작업을 한다고 가정할때 두 브랜치가 같은 라인 코드를 수정 후 커밋을 합니다. 그리고 작업이 다 끝나면 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가 일어나도 당황하지 않고 해결할 수 있으니까요!
'git' 카테고리의 다른 글
git fetch pull 사용법, fetch pull 차이점 알아보기 (0) | 2021.04.19 |
---|---|
[git] branch 란? 생성해서 사용법 익히자 (3) | 2021.03.11 |
git push 하기,github(깃허브)에 파일 올리는 방법 git add ,git commit ,git push 과정 (0) | 2020.09.01 |
git 버전관리와 흐름,작업 영역 workring directory , staging area , repository (0) | 2020.06.08 |
이챙(leechaeng)
프론트엔드 개발도 하고 뛰기도 하고