오늘도 한 뼘 더

[Git] Git Conflict 해결방법 본문

Study/Git

[Git] Git Conflict 해결방법

나른한댕댕이🐶 2022. 8. 2. 09:29
728x90
반응형

로컬에서 작업을 하다가 코드를 pull 받았을 때 pull 받으려고 하는 코드와 작업 중인 코드의 순서가 불분명할 경우 conflict이 난다. 즉, 같은 파일의 같은 줄에 서로 다른 코드가 작성되어 있을 경우 어떤 코드가 반영되어야 하는지 불분명해 이런 conflict이 발생한다. 

 

  # Conflict 해결 방법  

1. 밑의 두 가지 방법을 사용해서 먼저 접근한다.

  • Git > Rebase > Resolve Conflcts
  • Git > Resolve Conflicts 

 

Resolve Conflict 클릭

 

2. Merge 클릭

  • Accept Yours
    • 로컬에 있는 코드를 받아들이겠다는 뜻이다. Conflict이 난 상황에서 본인이 수정한 코드를 먼저 받아들여서 로컬 창에 본인이 수정한 코드만 남게 된다.
  • Accept Theris
    • GitLab에 올라가 있는 master의 코드를 받아들이겠다는 뜻이다. 로컬 창에 본인이 수정한 코드가 없어지고 master에 올라가 있던 코드로 수정된다.
  • Merge
    • 3-way Merge 창을 열어 주는 명령어다. 로컬과 GitLab에 올라가 있는 코드를 유지하여 수정할 수 있도록 도와준다.

 

 

3. 다음과 같은 3-way Merge 창이 뜨게 됩니다.

  • 왼쪽: 본인이 수정한 코드 / 가운데: 최종본 / 오른쪽: upstream master에 있는 부분
  • 직전의 코드 작성자와 함께 코드를 합치는 작업을 진행합니다.
    • '>>'버튼 : 해당 버튼은 클릭하면 버튼이 가리키는 영역의 코드가 최종본으로 추가된다.
    • 'X'버튼 : 해당 버튼을 클릭하면 버튼이 가리키는 영역의 코드에 대해 영역을 해제하고 아무런 액션이 취해지지 않는다.
      • 위 두가지 버튼을 사용하여 conflict이 난 코드에 대해 수정을 진행한다.
    • Apply : conflct이 난 상황에 대해 처리가 되면 apply버튼을 눌러 최종본을 현재 코드 창에 적용시킨다.

 

 

4. 다시 rebase를 통해 재정렬

  • 더 이상의 conflict이 발생하지 않는다면 commit 메세지가 뜨고 conflict이 발생하면  "Merge Conflict"이 뜬다. 위와 같이 Conflict 해결을 한다. 
  git rebase --continue
728x90
반응형
Comments