Cute Happy Ghost
본문 바로가기
etc/git

git push충돌 오류 (rejected non-fast-forward) 해결방법

by JENN_tech7 2024. 2. 7.
728x90
SMALL

가끔 git push를 하려고 하면 non-fast-forward 오류 메시지가 나타날 때가 있다.

이 오류는 로컬 브랜치의 현재 상태가 원격 브랜치보다 뒤에 있거나, 로컬 브랜치가 원격 브랜치의 최신 상태를 기반으로 하지 않았을 때 발생함.

이는 다른 누군가가 이미 원격 브랜치에 새로운 커밋을 푸시했으며, 로컬 브랜치가 그 변경 사항을 포함하고 있지 않음을 의미한다..

 

push하기전에 무조건 pull을 받지만 push를 하고나서 non-fast-forward오류가 나게되면 

fetch -> merge -> push로 진행하는데 아래 해결방법을 상세히 적어보겠다..

 

 

 

 

 

  • fetch

먼저 window -> show view -> others -> git repositories클릭하여 창을 띄워준다

프로젝트 -> remotes -> origin 에서 첫번쨰 초록색을 우클릭하여 configure Fetch클릭

 

 

 

그럼 이 화면이 뜨는데 여기서 Advanced 클릭

 

 

 

 

여기서 소스가 있으면 쓰레기통 버튼을 클릭해서 삭제해준다

무서워하지 말고 삭제해줘도 괜찮다

 

 

 

 

 

 

Source ref를 클릭해서 해당 브런치 클릭하고 Add spec을 클릭하면 오른쪽 화면처럼 아래 소스가 생긴다

그리고 finish 클릭

 

 

 

그리고 Save and Fetch클릭해서 최신변경사항을 로컬로 가져온다

이렇게 잘 fetched되었다고 뜨면 fetch완료

 

 

 

 

  • merge

이제 git repositories에서 branches-> local -> Merge를 클릭해서 작업 머지를 해준다

 

 

 

remote tracking 클릭하며 Merge클릭

 

 

 

그럼 이렇게 Merged되었다고 메시지가 나온다

OK누르고 종료

 

 

 

 

 

 

 

  • push

프로젝트 우클릭하여 Team -> Remote -> Push클릭하여 머지한 작업을 저장소에 올려주면 된다

 

 

 

 

해당 팝업이 뜨면 Next 클릭

 

 

 

 

위에 했었던 작업을 해주면 된다

Source ref에서 브랜치 클릭하여 Add Spec을 눌러주면 아래 소스가 생긴다

아래 추가되어있는 것을 확인하고 Finish를 눌러준다

 

 

 

 

위와 같이 pushed to origin이라고 뜨면 origin에 잘 푸시되었다는 뜻!

그럼 완료~

728x90
LIST

댓글