GIT error failed to push some refs to

Jan 26, 2024
GIT error failed to push some refs to

푸쉬 거절 당함…
notion image
데이터 유실 등 문제가 있을 수 있는 부분이 있어 거절하는거라고 함…
 

첫번째 시도 → 성공은 했으나 잔디 일부가 사라짐…ㅜ

 
이럴 때는 먼저 원격지에서 최신 내용을 pull
$ git pull origin master
겹치는 코드가 있다면 충돌(conflict)이 발생해서 어떤 코드를 넣을지는 본인 선택
conflict가 없다면 생략
 
다시 푸쉬
$ git push --set-upstream origin master
 
임시방편 / 강제 푸쉬
$ git push -u origin +master $ git push origin master -force
 
푸쉬 확인
notion image
푸쉬는 성공햇으나 절대 말것…!
 

두번째 방법 시도 → 성공!

git clone github주소 // 해당 레파지토리 다운로드받기
notion image
현재 저장소 내에 다른 git 저장소를 추가했습니다.
힌트: 외부 리포지토리의 클론에 다음 내용이 포함되지 않습니다
힌트: 내장된 리포지토리이며 이 리포지토리를 얻는 방법을 알 수 없습니다.
힌트: 하위 모듈을 추가할 경우 다음을 사용합니다:
힌트:
힌트 : git submodule 추가 <url> spring-lec
 
무슨 말인지 모르겠음…
그냥 푸쉬 시도
notion image
notion image
! [rejected] 마스터 -> 마스터 (fetch 먼저)
오류: 'https://github.com/vosw1/string-lec.git' '에 대한 일부 참조를 푸시하지 못했습니다
힌트: 원격에 사용자가 하지 않는 작업이 포함되어 있으므로 업데이트가 거부되었습니다
힌트: have local. 이는 일반적으로 다른 리포지토리가 다음으로 밀어서 발생합니다
힌트: 동일한 참조. 원격 변경 사항을 통합하려면 다음을 사용합니다
힌트: 다시 밀기 전에 'git pull'.
힌트: 자세한 내용은 git push --help의 '빠른 전진에 관한 노트'를 참조하십시오.
 
가장 스트레스…git pull 하라는 git의 힌트대로 시도해서 푸쉬 해보기
$ git pull origin master
notion image
notion image
성공!
내 몇 없는 잔디들을 지키는데 성공함
 
또 다시 터진 오류… 2번째로도 해결이 안됨
  1. 로컬 브랜치에서 git pull 수행:
    1. bashCopy code git pull origin master
      이 명령은 리모트 저장소에서 최신 변경 사항을 가져오고 로컬 브랜치를 업데이트합니다.
  1. 만약 충돌이 발생했다면, 충돌 해결:
    1. git pull 명령을 실행하면서 충돌이 발생했다면 Git은 자동으로 병합하지 못하고 충돌을 남겨둡니다. 이 때, 작업 디렉터리에서 충돌을 해결해야 합니다. 충돌을 해결한 후에는 아래 명령어로 변경 사항을 스테이징하고 커밋합니다.
      bashCopy code git add . git commit -m "Merge branch 'master' of https://github.com/vosw1/bubble-bubble-swing.git"
  1. 다시 푸시:
    1. 충돌을 해결한 후에는 다시 푸시를 시도합니다.
      bashCopy code git push origin master
이렇게 하면 로컬 브랜치가 리모트 브랜치와 동기화되고 변경 사항이 리모트 저장소에 반영될 것입니다.
 
  • -set-upstream 옵션을 사용하여 로컬 브랜치를 리모트 브랜치와 연결하는 명령어는 일반적으로 다음과 같습니다:
bashCopy code git push --set-upstream origin master
그러나 여전히 오류가 발생한다면 몇 가지 추가적인 점을 확인해보세요:
  1. 브랜치 이름 확인: 로컬에서 master 브랜치가 존재하고, 리모트 저장소에도 master 브랜치가 있는지 확인합니다.
    1. bashCopy code git branch
      이 명령어로 현재 활성화된 로컬 브랜치를 확인할 수 있습니다.
  1. 리모트 저장소 확인:origin 리모트 저장소가 올바른지 확인합니다.
    1. bashCopy code git remote -v
      이 명령어로 현재 설정된 리모트 저장소의 URL을 확인할 수 있습니다.
  1. 변경사항 확인: 최근에 리모트 저장소에 변경 사항이 있는지 확인합니다. 만약 다른 사람이나 다른 장치에서 변경 사항을 푸시한 경우, 먼저 git pull로 최신 변경사항을 가져와야 합니다.
    1. bashCopy code git pull origin master
위의 단계를 확인한 후에도 여전히 문제가 있다면, 정확한 오류 메시지를 공유해주시면 추가적인 도움을 드릴 수 있을 것입니다.
 
  1. -allow-unrelated-histories 옵션 사용:git pull 명령어를 사용할 때 -allow-unrelated-histories 옵션을 추가하여 두 이력을 병합합니다.
    1. bashCopy code git pull origin master --allow-unrelated-histories
  1. 병합 커밋 없이 이력을 병합:-allow-unrelated-histories를 사용하여 병합했는데도 해결이 안 된 경우, 아래 명령어로 이력을 병합합니다.
    1. bashCopy code git merge --allow-unrelated-histories origin/master
  1. 이후 푸시: 이후에는 정상적으로 git push 명령어로 푸시가 가능해질 것입니다.
    1. bashCopy code git push origin master
이렇게 하면 서로 다른 이력이 병합되어 하나의 이력이 생성됩니다. 이후에는 정상적으로 푸시가 가능할 것입니다.
 
  1. 충돌 해결: 충돌이 발생한 파일들을 열어서 충돌을 해결해야 합니다. 파일을 열면 충돌이 발생한 부분이 표시되어 있고, 원하는 변경 사항을 선택하여 충돌을 해결하세요.
  1. 해결 후 스테이징: 충돌을 해결한 파일들을 스테이징 영역에 추가합니다.
    1. bashCopy code git add <file1> <file2> ...
  1. 커밋: 충돌을 해결하고 스테이징까지 완료했다면 커밋을 생성합니다.
    1. bashCopy code git commit -m "Merge branch 'master' of https://github.com/vosw1/bubble-bubble-swing.git"
  1. 푸시: 이제 충돌을 해결하고 커밋을 했으므로, 푸시를 시도하세요.
    1. bashCopy code git push origin master
만약 다시 충돌이 발생하면 해당 충돌을 해결하고 위의 단계를 반복
 
Share article

vosw1