개인 깃허브에서 원래 쓰던 TIL 저장소를 내 노트북의 원격 저장소로 연결하고 새로 만든 폴더를 push했는데 이런 에러가 발생했다.
먼저 에러 로그를 읽고 검색해보니 remote repository와 local repository가 동기화 되어있지 않아서 발생하는 에러인것 같다.
기존 데이터가 손실되는 것을 막기 위해 push를 막은것이다.
이럴때에는 두가지 방법이 있다.
1️⃣ 강제로 푸시하기
$ git push origin +main
// 또는
$ git fetch origin main
main 부분에는 branch 이름을 넣어준다.
이때 조심해야 할것은 강제로 branch에 푸시하기 때문에 내가 변경한 내용만 반영되는 것이 아니라, 소스 전체에 push가 되어 버린다.
따라서 기존의 데이터가 손실될 위험이 있다.
특히 다른 사람과 협업중에 이 방법을 쓰면 다른 사람의 소스까지 덧씌워져서 날아갈수있다.
2️⃣ git pull로 동기화 한 후 다시 push하기
// 1. git pull로 repository 가져오기
$ git pull [원격저장소이름] [브랜치이름]
// 2. 다시 push하기
$ git push https://내 깃허브주소/레포지토리이름.git
이렇게 하면 된다고 했는데... 또 에러가 발생했다 ㅎ
에러보다는 경고 메시지인것같다. 이 메시지는 pull 방식을 명시하지 않았기 때문에 발생하는 것이라고 한다.
새로 업데이트 된 내용인데, rebase, merge, fast-forward 세가지 방법중 정해주면 된다고 한다.
이 세가지 방법에 대해서는 자세히 정리해보고 다시 게시글을 쓸거다.
해당 레포지토리만 silence 하려면
git config pull.ff only
향후 모든 레포지토리에 대해 적용하려면
git config --global pull.ff only
나는 혹시 몰라서 이 레포지토리에 대해서만 적용하는 명령어를 입력했다.
그랬더니 또 에러^^!!!!!!!!
오늘따라 끝내주는 에러 플로우
이것도 검색해보니 이번엔 내가 ff (fast-flow) 방식으로 pull 하겠다는 내용을 선택해서 그렇다고 하더라. 완전 도라버림
다시 취소했다..ㅎ
git config --unset pull.ff
pull 방식중 이게 일단 무난하다고 해서 (아직 잘 모름) 일단 이렇게 하기로 했다... 제발 좀 되면 좋게씀
git config pull.rebase false
git pull 재시도
ㅎ 또 끝내주게 실패하는중
다시 구글링해보니 이렇게 해보라고 한다!
git pull origin 브런치명 --allow-unrelated-histories
--allow-unrelated-histories 명령 옵션은 이미 존재하는 두 프로젝트의 기록(history)을 저장하는 드문 상황에 사용된다고 한다.
즉, git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용해 주는 것이다.
그리고 드디어 pull이 성공했다!!!!!!!!! 감격의 눈물... 흑흑
이 이후로 내 깃허브 레포지토리에 들어있던 내용들이 다 가져와졌다.
그리고 다시 push하기!
ㅠㅠㅠㅠㅠ push 완료... 깃허브에도 내용이 잘 들어왔다
다만 .gitignore 파일을 생성해서 .DS_store 파일을 무시하도록 했는데 왜 같이 업로드 되었는지는 모르겠다....
해당 파일에 대해서도 다시 조사해볼 생각이다
그리고 테스트겸 다시 내용 수정후 커밋하고 푸시한 결과!
내용이 잘 푸시된다~!~!!!
궁금했던 내용들은 정리해서 글을 써봐야겠다...
이렇게 할일만 자꾸자꾸 늘어가지만 하나씩 해치우겠다는 마음으로 다 배워주겠다
아무튼 오늘의 에러 삽질로그 끝!
아래는 참고한 다른분들의 블로그 게시글이다!
*********
https://velog.io/@johoon815/Git-rejected-master-master-fetch-first-git-push-%EC%97%90%EB%9F%AC
'study > errorLog' 카테고리의 다른 글
[error] python :: SyntaxError: unterminated string literal (detected at line 1) (1) | 2024.03.05 |
---|---|
Vite에서 환경변수(.env) 사용하기 (0) | 2023.06.26 |
[errorLog] React : Cannot read properties of null (reading 'map') 에러 (0) | 2023.04.02 |
[errorLog] express req.body에 값이 들어오지 않을때 (0) | 2023.02.12 |
[errorLog] Uncaught (in promise) SyntaxError: Unexpected token ... is not valid JSON (0) | 2023.02.07 |