본문 바로가기
IT/gitHub

이클립스에서 git 충돌시 해결방법

by heavenLake 2024. 4. 26.
반응형

방법 0 : mark as merged 사용

방법 1 : merge toll 사용 

방법 2 : overwrite

방법 3 : Replace With HEAD Revision

방법 4 : (음.. 이방법이 안전한지는... 잘모르겠음.)

             Git Respositories > 프로젝트명 > Branches > Local > master 에서 마우스 오른쪽 'reset' 클릭 후 

             hard 선택 =>  프로젝트명에서 마우스 오른쪽 누르고 Pull 선택

             출처: http://yard.tistory.com/entry/eclipse-git-overwrite-update [Free Style:티스토리]

 

방법0 :  mark as merged 사용(왠만하면 비추)  - 나와 다른개발자가 개발한 부분이 몇 라인 안되고 명확히

                                                                    다르면  편리하지만 같은 라인이면 오류나고 오류가 안나더라도

                                                                    이상하게 merge되는 경우가 있다.

 

방법1 : merge toll을사용해서 반영해야 하는 부분과 pull 받아야 하는 부분을 수정해서 다시 commit 합니다.

            그런 다음 pull을 받고 push를 하면 충돌이 해결됩니다.

 

방법2,3 : overwrite 시도 후 안되면 Replace With HEAD Revision 시도

              두개다 로컬에 소스를 git에 있는 소스로 덮어쓰는 방법입니다.

 

- Replace With HEAD Revision

 
해당 소스를 선택하고, 우클릭 ▶ Replace With ▶ HEAD Revision 메뉴를 선택하여 원격 저장소의 소스로 로컬 소스를 원복 합니다.

 

Replace-With-HEAD-Revision

 

 

· Discard Changes 버튼을 클릭하면, 로컬 소스가 원격 저장소의 소스로 덮어 쓰입니다. 만약 작업한 내역이 있다면, 미리 소스를 백업받아 둡니다.

이제 다시 pull 처리를 하면, 정상적으로 소스가 업데이트 처리됩니다.

 

 

--------- 여기서 부터는 참고 내용 -----------------------------------------------------------

 

------------------------------------------------------

replace head revision 이란 

------------------------------------------------------

 

1. 테스트

test.txt 의 내용은 얼마전에 작성한 [이클립스에서 git fetch 확인] 이라는 텍스트를 최종으로 한다.

이대로 파일 우클릭 -> Replace With -> HEAD Revision 을 하면 아무런 변화가 없다.

그냥 쓸데없는 텍스트 [123123]을 입력하고 다시 파일 우클릭 -> Replace With -> HEAD Revision 을 하면

커밋되지않은 변경사항을 버린다? 는 메세지 창이 표시된다.

Untracked files will be ignored. 추적되지 않은 파일은 무시될 것이다.

라는 메세지

그리고 파일의 내용은 123123이 없어지고 최초 확인했던 상태로 원복되었다.

커밋되지않은 변경사항을 버린다

 

2. 테스트

파일의 내용을 변경 & 저장 한다.

커밋만 한다.

origin/master 는 이클립스에서 git fetch 확인 커밋 [8e1c613]을 가리키면서 로컬저장소에는 Replace With - HAD Revision#1 커밋 [48f71fc] 이 추가되었다.

HEAD 는 새로운 커밋 [48f71fc] 를 가리킨다.

그 상태에서 다시 [123123] 이라는 더미 텍스트를 추가하고 test.txt 파일을 저장한다.

파일 우클릭 -> Replace With -> HEAD Revision 기능을 실행해보면

Discard Uncommited Changes 메세지창이 동일하게 표시되고

Discard Changes 버튼을 클릭하면

로컬저장소에 최종 커밋했던, HEAD가 가리키던 상태로 test.txt 파일이 복원된다.

일반적인 의미로 원복/복원 이라는 용어를 정의하기는 애매하지만, Replace With - HEAD Revision 이 단순히 원격저장소의 내용으로 파일 내용을 복원하는 기능이 아니라는 점은 확실해졌다.

결론

Replace With -> Head Revision 기능은

파일의 변경사항을 HEAD가 가리키는 내용으로 변경한다.

 

참고 사이트 :

- https://m.blog.naver.com/piyoro/222039082287

- https://smartdatastory.tistory.com/entry/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-git-%EC%86%8C%EC%8A%A4-%EC%B6%A9%EB%8F%8C-%EC%97%90%EB%9F%AC%EB%A1%9C-%EC%9D%B8%ED%95%B4-pull-%EC%95%88%EB%90%A8-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95

 

반응형

댓글