[Git] ! [rejected] master -> master (non-fast-forward)

MINJEE·2024년 6월 27일

Git 공부

목록 보기
2/3

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

  • 원인 : 로컬 브랜치가 원격 브랜치보다 뒤에 있기 때문에 발생
    • 원격 저장소의 최신 커밋을 로컬 저장소로 가져오고, 이를 병합한 후 다시 푸시해야함
  • 기본적인 해결 방법
    1. 원격 브랜치에서 최신 변경 사항을 가져오기 :
      git pull origin master
    2. 변경사항을 푸시하기 :
      git push origin master
  • 자세한 단계
    1. 원격 저장소에서 변경 사항 가져오기 :
      git fetch origin
    2. 원격 브랜치와 병합하기 :
      git merge origin/master
      • 원격 브랜치의 최신 변경 사항을 로컬 브랜치에 병합하는 단계
        (만약 충돌이 발생하면, 해결한 후 커밋하기)
      • 1,2 단계를 합친 것이 기본 해결방법의 1단계에 해당!
    3. 변경 사항 푸시하기 :
      git push origin master
  • 나의 경우에는 git 저장소에는 아무것도 올라가져 있지 않은 상황이었는데, Intellij IDE에서는 commit과 push가 완료된 상태였다.
    따라서, 위와 같은 방법으로 해결할 경우, 지금까지 작성했던 코드들이 사라질 거 같아서 다른 방법으로 시도하였다.
  • 해결방법 : 강제 push하기 (위험한 방법)
    git push origin +master
    • 원격 브랜치의 기록을 로컬 브랜치로 덮어쓰므로 주의해서 사용해야 한다.

참고 사이트 : https://despiteallthat.tistory.com/84

profile
개발, 분석 배운 내용 정리하기!

0개의 댓글