가끔 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에 잘 푸시되었다는 뜻!
그럼 완료~
'etc > git' 카테고리의 다른 글
[SVN] Override and Update, Override and Commit (0) | 2021.11.11 |
---|---|
github 404 error - this is not the web page you are looking for (0) | 2020.12.18 |
깃에러:CRLF, LF (The file will have its original line endings in your working directory) (0) | 2020.12.13 |
github에서 fork된 repository삭제하기, 깃허브 포크삭제 (0) | 2020.12.09 |
vscode랑 git연동 (0) | 2020.12.03 |
댓글