이 페이지는 로컬 저장소 버전을 원본 저장소 버전과 일치시키는 방법을 정리한다.

오류 현상

Pull 오류 발생

Project context menu > Team > Pull 하면 conflict 오류가 발생한다.

Commit  안됨

Commit & Push rejected

원인

Pull 명령은 원격 저장소의 변경사항을 로컬 저장에 병합 (merge)하는 동작이다. 이 때 자동 merge가 안되면 로컬 저장소의 상태가 'conflict'이 되고 이 상태를 해소되지 않으면 다른 git 기능이 동작하지 않는다.

본 예의 경우 "Initial description"만 작성된 상태로 로컬에 pull 하여 1,2,3을 추가하였다. 그 후 다른 사용자가 4,5,6을 추가한 상태이다. 

원격 저장소 (readme.txt)
Initial description

 

상태

원격 저장소 (readme.txt)
Initial description
4
5
6

 

로컬 저장소 (readme.txt)
Initial description
1
2
3


해결 방안

Reset

원격 저장소를 기준으로 로컬 저장소를 reset 한다.

Project context menu > Team > reset

Reset 창에서 기준점이 원격 저장소가 되도록 한다 (예: Remote Tracking > origin/master). 그리고 Reset type을 'Hard' 로 설정한다.

확인 창에서 Yes를 선택한다. Reset hard 동작은 로컬 변경사항을 잃게된다는 점에 주의한다.

Reset의 결과로 readme.txt 파일 내용이 원격 저장소로 변경된다.

로컬 저장소 (readme.txt)
Initial description
4
5
6

 

Merge

원격 저장소를 pull 하여 발생하는 conflict을 수동으로 merge 한다.

Step 1)  Project context menu > Team > Merge

  • local master를 checkout 한 상태에서 origin을 선택하여 merge 수행

Step 2) 수동으로 merge 수행하고 파일 저장

Step 3) Git stage에서 수정했던 파일을 tracking에 add

Step 4) Commit & Push

  • 레이블 없음