코드노트

브랜치 CONFLICT 해결방법, pull? fetch? 본문

Code note/Error문제해결

브랜치 CONFLICT 해결방법, pull? fetch?

코드노트 2023. 2. 8. 19:59

 

 

 

팀원들하고 브랜치로 작업을하다가 pr후 CONFLICT를 만날 때 해결 방법은?

- 첫 브랜치 TIL에서도 느꼈지만 다시 보게 되니깐 또 혼란스러웠다.

- pull을 했는데  왜 안들어와지지? 그렇게 pull, fetch에 대해서도 알아보려고 한다.

 

우선 Merge가 되면서 충돌을 일으킨거다.

같은 파일을 작업하게 된다면 더욱 만나게 되는...! CONFLICT

 

githup에서 pr을 하면서 충돌이 계속 났고,

단계적으로 pr을 하고 충돌이 나지 않게 에러가 나지않게 확인하며 작업을 해야한다.

 

 

- pr을 연속적으로 팀원들이 하게 되면 안되는걸 알게 되었다.

- pr을 하더라도 꼭 팀리더에게 확인요청을 하고 컨펌 후 다음 pr을 하자.

- 순차적으로 pr을 보내고 merge를 하면 CONFLICT 에러도 가볍게 넘어갈 수 있다.( 가볍게 정리할...수정할..수 있다..)


githup pr(pull request) 후 가져오기

git pull upstream develop

- githup에서 upstream주소에 있는걸 develop환경에 가져온다.

* 여기서도 바로 만날 수 있다. CONFLICT! 

 

- vim으로 수정하고 cat으로 확인했다.( vi가 처음에는 짜증났지만 하다보니 손에 익는다. 그래도 vs code써야지)

 

- 수정을 완료 했다면 add 그리고 status 잊지말고 확인해주자.

- 그리고 git commit 을 하면 자동으로 commit 문구도 작성된다.

* -m 을 자제하자. 나는 아직 코린이..상황에 따라 구분하지 못하니깐.. 하나하나 입력하자! 

 

git push origin develop

- 마지막으로 push 를 해주고 다음 리더에게 넘기면 끝!

* 여기서 push 를 할때 처음 -u(upstream)을 해줬기 때문에 두번째에는 그냥 push로만 해주면 된다!


- merge를 할때 pull과 fetch를 사용하는데 그 둘의 차이가 궁금했다.

pull, fetch의 차이

 

git pull 별명 브랜치이름

pull 

- 원격 서버에서 최신 커밋들을 내려받아 현재 로컬 브랜치와 자동으로 병합할 때 사용

- 여기서 주의!! 혼자하는 작업물은 나만 사용하기에 병합이 되어도 수정하면 그만

- 그러나 pull은 자동 병합이기 때문에 여러 개발자들과 협업을 할 때에는 fetch를 사용하자.


git fetch URL

fetch

- 원격저장소에서 커밋되어있는 코드를 임시 브랜치로 모두 내려받는다.

- 내려받은 후에는 자동 병합이 되지 않고 merge 명령어를 이용해서 수동으로 병합해주어야 한다.

- 변경사항이 뭔지 확인하고 비교한 후 merge를 하여 충돌을 해결할 수 있다.


pull = fetch + merge

 

pull은 간편하지만 정확한 단계별로 하려면 fetch merge가 맞는거 같다.