본문 바로가기
etc/git hub

[error]main -> main (non-fast-forward) 오류

by 윈 Win 2021. 2. 3.
728x90

블로그 이사했습니다!

 

👇 블로그 이전 공지 👇

블로그 이전 안내 (tistory.com)

 

 

👇 새 블로그에서 글 보기 👇

[Error][GIT] main -> main (non-fast-forward) 오류 — Win Record (tistory.com)

 

 


 

문제상황

AndroidStudio의 Terminal에서 깃 테스트를 하던 중 push 과정에서 문제가 생겼다.

레포지토리A에 연결해 푸시하던 프로젝트를, A와의 연결을 끊고 레포지토리B에 연결을 하였는데, 그 다음 B에 푸시하려고 하자 아래와 같은 문제가 나타난 것이다.

 

![rejected]        main -> main (non-fast-forward)

 

 


원인

GitHub Docs

깃허브 공식 문서에 따르면 원격 레포지토리의 변경사항이 로컬 레포지토리에 반영이 안 된 상태에서 non-fast-forward 에러가 발생한다고 한다.

새롭게 연결한 레포지토리B에 이미 ReadMe 파일이 이미 있는데, 이를 프로젝트에 반영(pull)하지 않고 바로 커밋을 푸시하려 해 문제였던 것이다.

 

 


해결

해결방법은 세가지이다.

1. fetch→marge

2. pull

3. push +[branch name]

1, 2는 공식문서에서 제시하는 방법이고, 3에서는 구글링해서 찾은 방법이다.

 

1. fetch→marge

$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin YOUR_BRANCH_NAME
# Merges updates made online with your local work

 

2. pull

$ git pull origin YOUR_BRANCH_NAME
# Grabs online updates and merges them with your local work

 

3. push +[branch name]

$ git push origin +main

푸시할 브랜치에 +를 붙히면 된다.

 

 


참고자료

[Git] ! [rejected] master -> master (non-fast-forward) 해결 방법 (tistory.com)

non-fast forward (eclipse.org)

Dealing with non-fast-forward errors - GitHub Docs

 

 

 

공부하며 정리한 글입니다. 내용에 대한 피드백은 언제나 환영입니다.

댓글