농장/Git·Github

Eclipse & Github push rejected non-fast-forward 해결하기 / 이메일 연동(변경) / contributions 업데이트 안됨

귤발자 2020. 11. 11. 11:01
728x90
반응형

 타이틀이 장대하다. 상황으로 설명하자면, 깃허브와 이클립스의 사용자 이메일이 달라서 또는 둘 중 하나의 이메일이 변경되어서 push 오류가 뜨는 상황을 이야기한다. 

 안드로이드 스튜디오에선 깃허브 이메일이 변경되니 안드로이드 스튜디오 상이 메일과 다르기 때문에 push는 되나 Github Overview의 contributions가 업데이트 되지 않았다. 기존의 push를 하던 사용자와 다른 사람으로 인식하는 듯 하다. 그런데 이클립스에서 같은 상황으로 push를 하니 아예 push rejected non-fast-forward가 뜬다. 이 에러는 항상 정확한 이유를 설명해주지 않아 자칫하면 쉽게 땅굴팔 수가 있다.

 

 

이메일이 같지 않다는 문제를 알아차린다면 곧바로 해결할 수 있겠으나, 알아차리지 못한 경우 참 난감하다. 애꿎은 Branch나 Remotes를 건드리고 있을 가능성이 크기 때문이다.

 

 

깃허브의 이메일을 IDE에 맞추거나, IDE의 이메일을 깃허브와 맞추어야 한다.

나는 후자를 추천한다. 하지만 두 방법 모두 작성하겠다.

 

 

 

 

 

깃허브 이메일 변경

IDE와 같은 이메일이 없다면 Add email address로 새 메일주소를 추가할 수 있다. 여러개의 메일 주소를 등록할 수 있다.

그 중 대표로 사용되는 것(프로필에 표시됨)은 Primary email address로 지정한다.

Backup email address은 서브 대표 메일인듯 하다. 대표 메일에 문제가 생겼을 때 사용될 수 있으니 대표 메일이 비즈니스 용 메일주소라면 개인 메일을 사용하면 될 듯.

 

 

 

 

IDE 사용자 이메일 변경(이클립스 기준)

나의 메일주소가 보인다. 변경해주면 된다. 유저 네임까진 맞추기 않아도 된다. 변경 후 Apply and Close.

 

 

History탭의 과거 커밋 정보에는 여전히 이전 이메일이 적혀있다.

그런데 Git Staging에도 메일주소가 바뀌지 않았길래 둘다 바꾸어 주었다.

 

만약 그래도 여전히 에러가 뜬다면 Configure Fetch를 하러 간다.

Git Repository 탭의 저장소->Remotes->origin->Fetch->Configure Fetch

 

 

Advance를 누르고 재생성하거나 또는 없을 경우 새로 추가한다.

 

Save and Fetch를 해주고, 로컬 브랜치에서 Merge로 들어간다.

 

Remote 브랜치를 선택하고 Merge한다.
Merge 완료

 

 

다시 Push를 시도해봤다.

 

 

 

Push 성공!

728x90
반응형