[GIT] git conflict 해결하는 법

Hyodduru ·2022년 3월 18일
0

CS & Etc.

목록 보기
5/12
post-thumbnail

여러명이서 공동 프로젝트를 하는 상황에서 종종 git conflict상황을 마주하고는 한다.
정확히 어떤 상황에서 마주하는지, 그리고 이를 어떻게 해결해야하는지 알아보자!

🎬 새로운 공동 프로젝트 과정

1. CRA 만들기

한 사람(master 담당)이 npx create-react-app (project 이름) 을 통해 CRA를 생성한다.

2. Default settings

해당 프로젝트 팀원들이 공통으로 이용할 파일들을 생성해주는 등 파일 초기세팅을 진행한다. ex) router, sass, reset.css

3. 초기 세팅 커밋 해주기

git add . 👉 git commit -m “Add : initial settings complete”

4. Repository 연결

git remote add origin (repository 주소)
현재 로컬의 마스터에서 git init이 된 상태, 이제 remote에 repository를 생성하고 연결해준다.

5. 생성되어있던 프로젝트 다운받아오기

git clone (project 주소)
🔖git clone : git init과 동시에 remote 연결 한번에 된다!

6. 각자 팀원들 Branch 생성 & branch 독립적인 작업 ! + PR 작성

새로운 기능을 팀원들 각자 분담하여 만들고자 할 때 branch를 생성하여 작업한다.

git branch feature/login 브랜치 기능에 따라서 이름 지어서 브랜치 만들기
git checkout feature/login 만들어놓은 브랜치로 이동하기
git branch 현재 브랜치 위치 확인하기
git status staging 확인
git add . 추가 (commit 해주기 전에 확인한다)
git commit -m "Add: Login page complete" commit하기
git log commit 메세지 등 commit한 기록 확인
git push origin feature/login 내 로컬의 마스터 업데이트 해주기
🔖origin : 원격 저장소의 이름

👉 push 한 이후 PR 작성 해주기

<내 local branch update 할 때>
git checkout master local master로 간다.
git pull origin master remote master branch를 땡겨온다.

💥 Conflict 해결하기

만약 다른 사람이 같은 프로젝트 내에 같은 파일에서 작업을 한 후 master에 merge를 한다고 가정하면, 필연적으로 conflict가 발생한다.

conflict 발생 이유

A와 B가 한 파일을 각자의 local branch에서 작업했다고 가정해보자. A가 작업한 파일에는 B가 작업한 내용이 없다. master에서는 최종으로 어떤 파일을 선택해야할지 몰라서 conflict가 발생했으니 어떤 파일을 올려야할지 알려달라고 하는 것이다.

👏 conflict 해결 방법!

  1. Git checkout master local master branch로 간다.

  2. Git pull origin master remote master branch 땡겨온다.

  3. git checkout feature/hyojeong conflict 재연 -> merge 해줘야함
    master는 건들이면 안되므로 branch로 가주기

  4. Git merge master local master 내용을 local branch에 가져온다.

  5. Vs 코드 왼쪽 가지치기 icon click! -> 해당 파일 들어가기 -> 불필요한 mark, 내용들 지워주고 저장하고 싶은 최종형태로 저장하면 됌!! (아주 간단!)
    만약 잘못 지운 경우 - ctrl + z 눌러서 뒤로가면 됌

  6. git commit -m "Fix: git conflict" 커밋해주기

  7. Git push origin feature/hyojeong 수정 사항 push 해주기

  8. Complict 해결 끝~!

🍯 마무리

실전에서 맞닥뜨리는 conflict 마주하더라도 침착하게 잘 해결해보자! 오류메세지 공포증 극복하자(?) 오류가 왜 일어나는지 이해만 하고 있어도 차근차근 잘 해결해볼 수 있다. 프로젝트 중 오류 상황에 마주하는 것은 너무 당연한 것이니! 문제 상황들을 맞닥뜨렸을 때 유연하게 처리해나가는 과정을 익히면서 점점 성장하게 될 것이라 생각한다. 에러 메세지 오히려 좋아~~~ (?) (거짓말)

profile
꾸준히 성장하기🦋 https://hyodduru.tistory.com/ 로 블로그 옮겼습니다

0개의 댓글