본문 바로가기

개인공부 기록/node.js

[Git] Push 오류 (리모트에 로컬에 없는 사항이 들어있으므로 업데이트가 거부되었습니다.)

Git push를 하려는 도중 제목과 같은 에러가 발생하였다. 

 

원인

전날 Git을 통해 올린 파일이 잘못 올라갔는데 Git을 통해 업데이트 하지 않고 원격 리포지토리에서 코드를 직접 수정한게 문제가 되었다. 직접수정한 것도 commit history가 남는데 원격 Repostitory에 있는 커밋 히스토리와 로컬의 커밋 히스토리가 일치하지 않아 발생한 문제였다.

 

커밋 히스토리가 일치 하지 않는다.

해결 방안

해결 방법은 두가지 정도 찾은것 같다.

 

1. 강제 Push

원격 Repository의 Commit History를 Local 기준으로 맞춰준다.

개인이 혼자 사용하는 Branch라면 이 방법을 사용해도 무관하다고 생각한다. 단점은 원격 Repository의 Commit History가 사라진다는 점.

강제로 푸시하기

 

2. Pull, merge 후 commit, push

Local의 Commithistory 를 원격 Repository 기준으로 맞춰준다.

여러사람이 사용하는 branch의 경우 Commit History가 사라지는 것은 여러방면에서 곤란한 상황이 발생할 수 있다.

따라서 main에 pull 을 받고 해당 branch에 merge하여 conflict 해결 후 commit, push하는 방법이 있다.

단점은 기존 작업물이 날라갈 수 있으니 백업을 다른 곳에 해놔야한다는 점?

Pull 받기

 

앞으로는 Git 을 통해서만 원격 리포지토리에 접근하는 습관을 들여야겠다.

Recent Posts
Popular Posts
Recent Comments