git 명령어를 활용한 팀 프로젝트에서 충돌(Confilct) 해결
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
git을 활용한 팀 프로젝트에서 충돌(Confilct) 해결
팀 프로젝트를 진행하다 보면 다른 팀원과의 작업물 충돌은 피할 수 없는 과정일 것이다.
CONFLICT (content) : Merge conflict in...
작업자 사이 코드가 꼬여서 불가피한 혼란이 당황스럽지만, 원리만 알면 협업의 효율성을 높이는 필수 과정이다. 팀 작업 시, 필수적인 fetch, pull, merge 명령어를 활용해 충돌 해결 방법을 확인해 보겠다.
1. 명령어 정의
협업할 때 가장 먼저 이해해야 할 명령어 3종이다.
(1) git fetch
- 원격 저장소(GitHub)의 변경 사항을 로컬 컴퓨터로 가져오지만, 로컬 컴퓨터에서 작업 중인 코드에 바로 합치지는 않고, 원격 저장소와의 비교를 통해 변경 사항이 있는지 확인하는 '상태 조회' 명령이다.
![]() |
| git bash - git fetch origin |
(2) git pull
- fetch 를 수행한 뒤, 즉시 내 로컬 브랜치(Branch)와 merge 까지 진행한다. 가장 빠르지만, 자동으로 합치기(merge) 때문에 주의가 필요하다. 한마디로 fetch와 merge를 한꺼번에 실행한다.
![]() |
| git bash - git pull origin |
(3) git merge
- 로컬 컴퓨터에 가져온 변경 사항을 현재 내 작업 내용과 합치는 과정이다.
![]() |
| git bash - git merge origin/main |
2. 충돌(Conflict) 발생 이유
충돌은 여러 사람이 git을 사용해 작업을 하면서 동일 파일을 수정했을 때, 원격 저장소에 Push하면서 작업 파일에 불일치 요소가 있다는 것을 알려주는 것이다.
팀원이 동시에 같은 부분을 수정했다는 신호이므로 명확한 소통의 기회가 된다.
3. 단계별 실전 충돌 해결 가이드
충돌(Conflict)이 발생했다면 당황하지 말고 다음 단계대로 실행하면 된다.
(1) 충돌 파일 확인
- git status 를 실행하면 충돌이 일어난 파일 목록이 빨간색으로 표시됩니다.
(2) 파일 수정
- 충돌이 발생한 파일을 열면 <<<<<<< HEAD 와 >>>>>>> 같은 특수 기호가 표시된 부분이 확인된다.
<<<<<<< HEAD : 현재 내 로컬 컴퓨터의 작업물
>>>>>>> (브랜치명) : 원격 저장소에서 가져 온 작업물
![]() |
| vscode - 충돌(Conflict) 부분 확인, code <파일명> 실행 |
(3) 코드 선택 및 정리
- 두 코드 중 필요한 부분을 남기고 기호를 지운 뒤 파일을 저장한다.
(4) 마무리
- git add <. 또는 파일명> 을 실행해서 충돌 부분이 해결 되었음을 확인하고, git commit -m <문구> 으로 Push 전 단계까지 마무리 한다.
![]() |
| git bash - add, status, commit 명령 실행 |
4. GitHub와 연계한 팀 작업 성공 전략
팀원들과의 마찰을 최소화하려면 다음 습관을 들이는 것이 좋다.
(1) 작업 전 git pull 실행
- 작업을 시작하기 전에 동료가 올린 코드를 내 로컬 컴퓨터로 가져오는 것을 습관화 하자.
(2) 작은 단위로 commit 하기
- 커밋 단위가 너무 크면 충돌 범위도 넓어진다. 기능을 작게 나눠 자주 커밋 하자.
(3) 소통이 우선
- 같은 파일을 수정해야 할 때는 미리 동료에게 알려 줘서 동시에 작업하지 않도록 조율하는 것이 기술적인 충돌 해결보다 훨씬 중요하다.
처음 충돌(Conflict) 메시지를 받았을 때, "코드가 다 날아가는 건 아닐까?" 하는 걱정이 앞설 수 있다. 하지만, 충돌 부분을 확인하고 수정하다 보면, 동료가 진행하는 작업을 이해하는 계기가 된다.
충돌은 팀이 함께 성장하고 있다는 증거이다.
익숙해 지기 전까지는 힘들 수 있지만, 나중에는 침착하게 대처하는 것은 물론, 충돌을 해결하는 시간이 짧아지고 팀원과의 소통도 늘어날 것이다.
협업은 혼자 할 때보다 몇 배는 어렵지만, 배울 점도 몇 배는 많다는 것을 기억하자.
#conflict #git #github #pull #fetch #merge #status #commit #add #vi #vscode #branch





댓글
댓글 쓰기