[GIT]non-fast-forward 에러 포스트 참조
원격 저장소와 로컬 저장소간의 버전이 다르면 push가 거부당한다. 위 사진을 보면 로컬 저장소가 원격 저장소가 commit1까지만 있던 시절에 clone을 해서 새롭게 commit을 한 걸로 보인다. 하지만 그 작업을 하는 동안 다른 개발 동료가 원격 저장소에 새로운 commit을 push해서 두 저장소의 히스토리가 엇갈려버렸다. 이런 경우에는 push가 거부당하고 만다.
이럴 경우에는 원격 브랜치의 최신 상태를 기반으로 만들어야 한다.
fetch
로 원격 저장소의 변경정보를 가져오고, rebase
를 통해 작업을 옮기는 방법이 있다.
$ git fetch
$ git rebase origin main
$ git push
fetch
로 원격 저장소의 변경정보를 가져오고, merge
를 통해 git에게 원격 저장소의 변경을 합쳤다고 알려주는 방법이 있다.
$ git fetch
$ git merge origin main
$ git push
pull --rebase
는 fetch와 merge와 rebase를 동시에 해준다.
$ git pull --rebase
$ git push