[Git] Updates were rejected because the tip of your current branch is behind its remote counterpart. If you want to integrate the remote changes..

All We Need is Data, itself !·2024년 5월 24일
0

Development Journey

목록 보기
8/8

노트북에 vsc2를 설치하고 git을 연동했다.
test 커밋까지는 잘 됐는데 코드를 짜고 파일을 올리려고 하니까 이런 에러가 떴다
정확히는

뭐 이런 상황이었다.

지금 생각해보면 대충 회사에서 일할때도 종종 있는 상황이었는데 이게.. 윈도우로 보다가 봐서 그런가 뭔가 굉장히 생소했다

결론적으로는 로컬 저장소의 내용과 원격 저장소에 있는 내용이 달라서 push를 할 수 없다는 내용이다.

난 readme가 없고.. 히스토리가 달라질게 뭐가있지 생각해보니 test.py에 뭐 실행해본다고 내용을 변경해놨던거같다,, 그러니 당연하지...


이 사태의 해결 방법으로는 여러가지가 있을 수 있겠다.

-f+를 이용하여 강제로 덮어씌워버리는 방법도 있고.. 여러가지 방법이 있겠지만 나는 깃 에러 메시지에서 추천한 stash를 사용했다.
물론 rebase를 사용하라고도 했지만.. 나는 로컬 저장소가 원격 저장소보다 앞서 있는 상황이었기에.. git stash를 이용해서 에러를 해결만 하면 되는 일이었다고 생각했다.

git stash는 말그대로 임시저장소다. 스택의 형태로 되어있으며 pop을 지원한다.
문득 메모리가 아니라 디스크를 잡아먹는거겠지? 보관 기간은 얼마나 되지? 하고 알아봤으나 많이 쓰는 게 아니라 그런지 정보가 별로없다...

git stash 명령을 통해 일단 현재 로컬 내용들을 stash 스택에 쌓아둔다. 임시저장쓰
그런다음에 git pull을 이용해서 리모트 내용을 로컬에 덮어씌워줬다
그리고 git add하고 바로 commit과 함께 내용을 push해버렸다.

git stash로 저장
git stash list로 리스트 확인
git stash drop으로 스택 삭제
git stash apply로 스택 불러와서 적용

참고하기 좋은 자료: https://gitlab-docs.infograb.net/16.8/ee/topics/git/stash.html

profile
분명히 처음엔 데린이었는데,, 이제 개린이인가..

0개의 댓글