728x90

git push를 했을때 아래와 같이 error: failed to push some refs to 에러가 발생하는 경우가 있다

 

이는 원격저장소(github)에 내 로컬(내컴퓨터)에는 없는 파일이 있을 때 내 파일을 push 할 면 발생하는 오류이다.

이럴땐 원격저장소에서 내 로컬에 저장하지 않은 파일을 pull한 후 원격저장소에 다시 push를 해야한다.

아래의 예시에서 상황을 확인하고 해결책을 알아보자.

 

 

그러니까 내 로컬에서 원격 리포지토리로 파일 동기화를 시도하게 되는 경우에, 이 친구들은 hash 가 생겨나게 되면서 ref 라는 값으로 바인딩이 되곤 하는데, 이 ref라는 친구들을 밀어넣다가 에러가 터졋다는 것이다.

 

Git 과 동기화를 시도하기 전에 맨 처음 확인해야 할 것

1. 다른 리포지토리로부터 다운 받았던 파일들인지 등에 대한 것을 확인한다. 혹은 다른 곳(예를들면 회사)에서 작업했던 파일인지 확인한다.

 

이 경우 해당하는 폴더에는 회사에서 사용한다던가 하는 Account가 배정되어 있을 것이고, 이 친구들이 중복되어 에러를 뱉는 단계도 나온다.

-> 이 경우라면 .git 폴더를 검색하여 다 날리고나서 

git init 시퀀스부터 진행해준다.

 

 

1번을 진행했음에도 불구하고 위와 같은 에러가 뜬다면 pull로 땡겨본다.

그리고 나서도 문제가 있다면, 파일들이 모두 add 가 되었다는 상태를 가정하에 commit 을 시도하면 예쁘게 잘 올라가는 것을 확인할 수 있다. (는 거짓말)

 

위와같이 파일의 크기가 엄청나게 큰 경우에는 안올려준다.

 

 

 

 

상황 설명 및 해결

 

1. 상황

내 컴퓨터(local)에서 f1.py파일을 수정하였다. 이후 github에 수정한 내용을 push하려고 했지만, 팀원이 f2.py 파일을 올려놨다.

이 경우 나의 push가 제한된다.

 

2. pull

먼저 원격저장소에 f2.py를 내 로컬로 가져와야된다.

즉 원격저장소를 pull 해야한다.

git pull {원격저장소별칭 보통 origin이라고 함} master

그러면 아래와 같은 상황이 된다.

 

3. push

이후에는 push가 가능해지므로 add,commit,push를 해서 내가 반영하고 싶은 수정사항을 반영하면 완성!

git push {원격저장소 별칭 보통 origin} master

 

+ Recent posts