[GIT]원격/로컬 히스토리가 엇갈린 경우 push하는 방법

박민하·2022년 6월 18일
0

GIT

목록 보기
6/10
post-custom-banner

[GIT]non-fast-forward 에러 포스트 참조


  원격 저장소와 로컬 저장소간의 버전이 다르면 push가 거부당한다. 위 사진을 보면 로컬 저장소가 원격 저장소가 commit1까지만 있던 시절에 clone을 해서 새롭게 commit을 한 걸로 보인다. 하지만 그 작업을 하는 동안 다른 개발 동료가 원격 저장소에 새로운 commit을 push해서 두 저장소의 히스토리가 엇갈려버렸다. 이런 경우에는 push가 거부당하고 만다.

  이럴 경우에는 원격 브랜치의 최신 상태를 기반으로 만들어야 한다.

✔ solution1 : rebase

  fetch로 원격 저장소의 변경정보를 가져오고, rebase를 통해 작업을 옮기는 방법이 있다.

$ git fetch
$ git rebase origin main
$ git push

✔ solution2 : merge

  fetch로 원격 저장소의 변경정보를 가져오고, merge를 통해 git에게 원격 저장소의 변경을 합쳤다고 알려주는 방법이 있다.

$ git fetch
$ git merge origin main
$ git push

✔ solution3 : pull --rebase

  pull --rebase는 fetch와 merge와 rebase를 동시에 해준다.

$ git pull --rebase
$ git push

profile
backend developer 🐌
post-custom-banner

0개의 댓글