git 같은 프로젝트를 각자 수정하고 push 할 경우, 충돌오류

Yuri Lee·2020년 10월 20일
0

배경

같이 진행해야 하는 토이 프로젝트가 있었다. 인원은 두명이였고, 원활한 진행을 위해 git 에 프로젝트 폴더를 만들어 사용하기로 했다.

나는 git을 많이 사용하는 편이다. 그래서 몇가지 명령어에는 제법 익숙하다. 물론 팀플을 하면서 각자 브랜치를 이용하여 나눠 수정해본 적이 있었으나, 예전이기도 하고 ㅠ git 충돌 공포증 있나봐 .. 그럼에도 불구하고 해야GGGG

충돌 상황

다음은 실화를 바탕으로 한 충돌 후기이다.

  1. 갑과 을은 같은 프로젝트를 진행 해야 함
  2. 갑은 git에 repo에 프로젝트를 올림. (을도 이 repository 를 사용해서 수정해야 하므로!)

이 상황에서 에 병합 충돌(Merge conflicts) 위험이 생길 수도 있다. 왜일까?

  • 을은 갑이 올려놓은 프로젝트를 git clone을 하여 프로젝트를 수정하기 시작.
  • 갑은 먼저 프로젝트를 수정하고 add 후 commit , 그리고 push
  • 을 역시 동시에 프로젝트를 수정하였음. add commit 후 push 를 했더니 오류 발생 👊
    그와 동시에 을은 git pull 를 먼저 해야 하는 명령어를 보게 된다. 그래서 을은 터미널 창에 git pull 명령어를 입력하여 갑이 먼저 수정한 부분을 repository 에서 pull을 해온다. 이때 상황은 두가지로 나눠지게 된다.
  1. 같은 부분을 수정하지 않았으면 그냥 pull 하고, git add, commit, push 해주면 끝
  2. 하지만 같은 부분을 수정했으면 충돌이 발생! 그래서 갑이 수정한 부분을 반영할지 을이 변경한 부분을 반영해야 할지 선택해야 한다. 만약 을이 본인이 수정한 부분이 맞다고 생각하면 Current change 를 선택하면 된다. vscode 에서 플러그인을 설치하면 ui 로 다 잘 볼 수 있다. 선택한 후에 git add, commit(보통 나는 이때 merge라는 메시지를 남긴다), push 시켜주면 됨 :-)

결론

head는 을의 변경 사항(Current change)이고, master는 갑의 변경 사항(Incoming change)이다. 두 변경 사항 중 하나를 선택하면 된다.

느낀점

git 은 역시 똑똑해 😚...


출처: https://parksb.github.io/article/28.html

profile
Step by step goes a long way ✨

0개의 댓글