지난 포스팅
지난 포스팅에 branch, merge 에 대해서 알아보았고, 이번에는 git 의 꽃(?)이라고 볼 수 있는 충돌(conflict) 에 대해 아주 간단하게 포스팅해보려고 한다.
conflict 가 일어나는 이유
만약 A와 B가 작업을 하다가 같은 파일의 같은곳을 같이 건드렸다고 하자. 예를 들면 둘다 .gitignore 파일의 첫 번째 줄을 변경했다고 하자. 이 상태에서 merge 를 하게 되면 이제 Git 에서는 "나는 누구 변경사항을 적용해야 해?"가 된다. 이것을 충돌(conflict) 이라고 한다. 만약 충돌이 발생하면 아래와 같은 문구가 command 창에 뜨게 된다.
CONFLICT (content): Merge conflict in 파일명
Automatic merge failed; fix conflicts and then commit the result.
그렇게 되고 그 파일로 가게 되면 아래와 같이 파일이 변경되어 있고, HEAD 는 merge 명령을 실행할 때 작업했던 브랜치라고 보면 된다. 충돌된 부분을 보고 내가 써야 할 코드를 남겨놓고 <<<<<<<, =======, >>>>>>> 가 포함된 행을 삭제하면 된다. 그 후에 add, commit 을 통해 충돌해결 커밋을 하면 된다.
<<<<<<< HEAD:파일명
# 합쳐지는 곳의 수정사항
=======
# 합치는 곳의 수정사항
>>>>>>> branch:파일명
예를들면 .gitignore 파일을 열게 된다면 아래와 같이 나오게 된다.
만약 b 변경사항을 선택하고싶다면 아래와 같이 변경하고 add, commit 을 하면 된다.
결론
막상 충돌을 해결하다 보면 그렇게 두렵지 않게 된다. 혼자서 여러 브랜치를 만들어보고 merge 해보면서 conflict 를 해결하다 보면 금방 익숙해질 것이다.
'🐈⬛ Git' 카테고리의 다른 글
[Git] 깃모지(gitmoji) 간단 소개 (0) | 2024.01.18 |
---|---|
[Git] Git 시작하기 5 - branch, merge (0) | 2024.01.17 |
[Git] Git 시작하기 4 - push, pull (1) | 2024.01.16 |
[Git] Git 시작하기 3 - Xcode 프로젝트 넣기, Github 연동하기 (0) | 2024.01.16 |
[Git] Git 시작하기 2 - 프로젝트 만들기 (0) | 2024.01.15 |