커밋 후에 push 과정에서 실패 메세지가 뜬다.
체크해본 것은 아래와 같다.
1. git remote url도 레파지토리 경로 확인
2. 폴더에 .git 있는지 확인. 혹시 다른 자식 폴더에 .git 파일 있는지
두가지를 체크해봤지만 별 문제가 없었다.
근데 알아보니 README 파일 수정 후 이런 에러가 뜰 수 있다고 한다.
생각해보니 깃허브에서 REAME 파일을 생성하고 수정했었다. 로컬에서 작업한 것이 아니고 깃허브에서 직접 작업하다보니 이런 충돌이 발생한 것 같다.
이런 경우 몇가지 해결방법이 있다.
1. git pull
위 상황 자체가 remote의 변경 사항이 로컬 변경 사항과 일치하지 않으면서 충돌한 것이다. 그렇기 때문에 이 둘을 일치시켜주면 되는데 그 명령어가 바로 git pull을 사용하는 것이다.
git pull 브랜치명
git pull을 진행한 후 다시 push하면 local에도 remote의 변경 사항이 저장되기 때문에 정상적으로 push된다.
추가적으로 아래 pull 명령어를 입력하면 두 브랜치가 병합되기 때문에 해결할 수 있다고 한다. 좋은 방법은 아니라고 한다.
git pull origin master --allow-unrelated-histories
2. git push origin +master
master 앞에 +를 붙이면 강제푸시가 된다. 이 방법은 절대 좋은 방법이 아니기 때문에 어쩔수 없이 사용해야할 상황에서만 사용하는 것이 좋다. 근데 난 궁금해서 이 방법으로 해결했다.. 이렇게 푸시하니 README 파일이 삭제되더라. REAME 충돌이라 다행이지 위험하긴 하다.
git push origin +master
'프로그래밍⚡️ > git' 카테고리의 다른 글
git의 시초를 파헤쳐 보았다.. 그리고 깃 push하기 (0) | 2023.01.23 |
---|---|
깃허브 잔디가 안 심기는 문제 (0) | 2023.01.15 |
github 푸쉬 후 레포지토리에 폴더가 보이지 않는 문제 - master와 main의 차이 (0) | 2022.12.20 |
맥북 m1 유니티 깃허브(Github) 깃크라켄(Gitkraken) 사용법 (0) | 2021.08.28 |
맥북 M1 간단한 unity gitignore 사용법 (0) | 2021.08.28 |