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
'Env Setting > Git' 카테고리의 다른 글
How to find the hash of branch in Git? (1) | 2024.03.18 |
---|---|
Merge branch 'master' into others (0) | 2024.03.18 |
When to Git Clone SSL certificate issue (0) | 2024.03.15 |
[RESET] git reset 조지기 (32) | 2023.12.12 |
GIT BASH에서 FATAL: PROTOCOL 'HTTPS' IS NOT SUPPORTED 에러가 날 때 (62) | 2023.03.23 |