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