[Git] ! [rejected] error: failed to push some refs to '레파지토리 주소'

현주·2022년 10월 20일
0

Trouble Shooting

목록 보기
4/32

🔥 문제

앞 게시물에 이어서, 실습한 내용을 push하고자

push할 파일을 add / commit 후, push를 하기 위해 적어주었는데

거절당했다..!!

검색을 해보니


💡 원인

git의 원격 레파지토리에서 clone해서 나의 local 레파지토리에서 수정한 파일을
다시 내 git의 원격 레파지토리로 push하기 위해서는

수정한 파일의 내용을 제외한 그 둘의 구성(Ex. 파일들의 개수, 이름 등)이 같아야한다.

예를 들어, git의 레파지토리에 src / gradle / .idea 이 세개의 파일이 있다고 할 때,
push하려는 그 clone으로 가져온 내 local에 있는 파일도 저 세개의 파일이 있어야함
( 개수나 이름이 바뀔 경우 둘이 같지 않아 push가 불가능 )

위의 에러를 잘 읽어보면,

your branch is behind. 라고 한다

즉, 로컬에 없는 원격 분기에 변경 사항이 있음을 의미한다.

원격 저장소의 최종 commit을 따라가지 못한 현재의 branch가 문제인 상황이다.


☘️ 해결

따라서 이를 해결하려면 내 local과 git 의 두 레파지토리를 pull을 이용해 merge 해줘야 한다!

그러나 아래와 같이 pull을 해줬지만 달라지는 것은 없었다..

git pull

그래서 더 찾아보다가
아래의 명령어를 사용하여 최종 commit한 장소 까지 끌어올렸다!

$ git pull --rebase origin branch명

이렇게 하고 push까지 해보니 정상적으로 실행되었다 !!
( 과정은 캡쳐를 못해 사진이 없다 ㅠ)

[참고] https://pythontoomuchinformation.tistory.com/459
[참고] https://codewithhugo.com/fix-git-failed-to-push-updates-were-rejected/

0개의 댓글