방법 0 : merged
방법 1 : merge toll 사용
방법 2 : overwrite
방법 3 : Replace With HEAD Revision
방법 4 : Reset (Head의 위치를 조정한다. 이건 정확한 정의를 이해하기전에는 쓰지마라
Commit된 위치가 조정 취소 될수 있다.)
Git Respositories > 프로젝트명 > Branches > Local > master 에서 마우스 오른쪽
'reset' 클릭 후 hard 선택 => 프로젝트명에서 마우스 오른쪽 누르고 Pull 선택
방법0 : merged 사용(왠만하면 비추) - 나와 다른개발자가 개발한 부분이 몇 라인 안되고 명확히
다르면 편리하지만 같은 라인이면 오류나고 오류가 안나더라도 이상하게 merge되는
경우가 있다. Team > Merge 선택
방법1 : merge toll을사용해서 반영해야 하는 부분과 pull 받아야 하는 부분을 수정해서 다시 commit 합니다.
그런 다음 pull을 받고 push를 하면 충돌이 해결됩니다.
(이건 내가 수정한 내용을 commit해야하는 경우 사용)
참고 : Eclipse Git Merge Conflict 해결 방법 - CURVC DevOps - Confluence DC
방법2,3 : - overwrite : 싱크화면에서 오른쪽클릭 mark as merged후 overwrite 실행 이후 Full
- revision : Git Staging화면에서 오른쪽클릭 Replace With HEAD Revision 후
다시 Full 받는다.
위 두개다 로컬에 소스를 git에 있는 소스로 덮어쓰는 방법입니다.
(HEAD Revision은 브런치 HEAD 시점이다. 밑에 참고내용 확인)
- Replace With HEAD Revision
해당 소스를 선택하고, 우클릭 ▶ Replace With ▶ HEAD Revision 메뉴를 선택하여 원격 저장소의 소스로 로컬 소스를 원복 합니다.
Replace-With-HEAD-Revision
· Discard Changes 버튼을 클릭하면, 로컬 소스가 원격 저장소의 소스로 덮어 쓰입니다. 만약 작업한 내역이 있다면, 미리 소스를 백업받아 둡니다.
이제 다시 pull 처리를 하면, 정상적으로 소스가 업데이트 처리됩니다.
--------- 여기서 부터는 참고 내용 -----------------------------------------------------------
------------------------------------------------------
replace head revision 이란
------------------------------------------------------
1. 테스트
![](https://blog.kakaocdn.net/dn/bDeDyd/btsGWLOqIKr/AiWNPq6ea5OWWJ7ozkmJok/img.png)
test.txt 의 내용은 얼마전에 작성한 [이클립스에서 git fetch 확인] 이라는 텍스트를 최종으로 한다.
이대로 파일 우클릭 -> Replace With -> HEAD Revision 을 하면 아무런 변화가 없다.
![](https://blog.kakaocdn.net/dn/OshS5/btsGWc6ApLG/87uWS8UZQOVKtDN6J10iC0/img.png)
그냥 쓸데없는 텍스트 [123123]을 입력하고 다시 파일 우클릭 -> Replace With -> HEAD Revision 을 하면
![](https://blog.kakaocdn.net/dn/ba2RG2/btsGXBddfNM/QLBxS11NPwcdyLusNLC7I0/img.png)
커밋되지않은 변경사항을 버린다? 는 메세지 창이 표시된다.
Untracked files will be ignored. 추적되지 않은 파일은 무시될 것이다.
라는 메세지
그리고 파일의 내용은 123123이 없어지고 최초 확인했던 상태로 원복되었다.
커밋되지않은 변경사항을 버린다
2. 테스트
![](https://blog.kakaocdn.net/dn/sXR2O/btsGWMNlGKz/pdbjpiK26n0MBcg2Zpz6yK/img.png)
파일의 내용을 변경 & 저장 한다.
![](https://blog.kakaocdn.net/dn/9NM2D/btsGXkbKb0X/mOQjefv9EkG6TIKeKxpoT1/img.png)
커밋만 한다.
![](https://blog.kakaocdn.net/dn/dWrIUb/btsGVL9heLv/4Zi4NXlZkQKlbkgSCQ4kOK/img.png)
origin/master 는 이클립스에서 git fetch 확인 커밋 [8e1c613]을 가리키면서 로컬저장소에는 Replace With - HAD Revision#1 커밋 [48f71fc] 이 추가되었다.
HEAD 는 새로운 커밋 [48f71fc] 를 가리킨다.
![](https://blog.kakaocdn.net/dn/LFZfu/btsGWu0gxyl/ugSz2W1iu7KLz6GYN606h0/img.png)
그 상태에서 다시 [123123] 이라는 더미 텍스트를 추가하고 test.txt 파일을 저장한다.
파일 우클릭 -> Replace With -> HEAD Revision 기능을 실행해보면
Discard Uncommited Changes 메세지창이 동일하게 표시되고
Discard Changes 버튼을 클릭하면
![](https://blog.kakaocdn.net/dn/pne38/btsGUWKcmRi/biJsSHZnG6iDsDGljDM3O1/img.png)
로컬저장소에 최종 커밋했던, HEAD가 가리키던 상태로 test.txt 파일이 복원된다.
일반적인 의미로 원복/복원 이라는 용어를 정의하기는 애매하지만, Replace With - HEAD Revision 이 단순히 원격저장소의 내용으로 파일 내용을 복원하는 기능이 아니라는 점은 확실해졌다.
결론
Replace With -> Head Revision 기능은
파일의 변경사항을 HEAD가 가리키는 내용으로 변경한다.
참고 사이트 :
'IT > gitHub' 카테고리의 다른 글
이클립스에서 git Pull / Commit / Push 하는 방법 (0) | 2024.04.26 |
---|---|
이클립스 git ignore 파일 적용이 안될때. (0) | 2024.04.26 |
이클립스 GIT 프로젝트 Import하기 (git Clone) (0) | 2024.04.26 |
gitHub 시작하기 (0) | 2021.08.04 |
gitHub 이클립스로 연동하기 (0) | 2021.08.04 |
댓글