개발관련/Git

git error: failed to push some refs to remote.

Rateye 2021. 10. 25. 11:26
728x90
반응형
질문 : 자식 오류 : 일부 참조를 원격으로 푸시하지 못했습니다.

왠지 지금은 할 수 없지만 어제는 할 수있었습니다. 아마도 구성이나 뭔가를 엉망으로 만들었을 것입니다.

이것은 일어나는 일입니다 :

git push origin master를 사용할 때

gitbashscr

내 작업 디렉토리 및 원격 저장소는 다음과 같습니다.

다음 디렉토리가있는 Windows 파일 폴더의 스크린 샷 : .git, css, js. 그리고이 파일 : index.php, readme, setsu.php. 화살표가있는 "local"이라는 단어는 css- 폴더를 가리 킵니다. 아래는 제목이 "github"이고 css-folder 및 index.php-file 인 스크린 샷입니다.

답변

(참고 : 2020 년 10 월부터 모든 새 저장소는 master 아닌 main 으로 생성됩니다. 기존 저장소 기본 분기의 이름을 master 에서 main 으로 바꿀 수 있습니다.
이 2014 년 답변의 나머지 부분은 " main "을 사용하도록 업데이트되었습니다.)

GitHub 리포지토리에서 새 커밋이 푸시 된 것을 본 경우 로컬에서 작업하는 동안 다음을 사용하는 것이 좋습니다.

git pull --rebase
git push

전체 구문은 다음과 같습니다.

git pull --rebase origin main
git push origin main

Git 2.6 이상 (2015 년 9 월), 완료 후 (1 회)

git config --global pull.rebase true
git config --global rebase.autoStash true

간단한 git pull 이면 충분합니다.
(참고 : Git 2.27 Q2 2020 에서는 rebase없이 정기적 인 pull에도 merge.autostash

origin/main (또는 origin/yourBranch : git pull origin yourBranch ) 위에 로컬 커밋을 재생 ( --rebase 부분) 할 수 있습니다.

6 장 Pull with rebase of the Git Pocket Book 에서 더 완전한 예제를 참조하십시오.

다음을 권장합니다.

# add and commit first
git push -u origin main

그러면 로컬 메인 브랜치와 업스트림 브랜치 간의 추적 관계가 설정됩니다.
그 후 해당 분기에 대한 향후 푸시는 다음과 같이 간단하게 수행 할 수 있습니다.

git push

" 새 분기를 명시 적으로 푸시해야하는 이유는 무엇입니까? "를 참조하십시오.

OP는 이미 origin/main 위에 커밋을 재설정하고 다시 수행 했기 때문에 :

git reset --mixed origin/main
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin main

pull --rebase 를 가져올 필요가 없습니다.

참고 : git reset --mixed origin/main git reset origin/main 으로 쓸 수도 있습니다 git reset --mixed 옵션이 기본 옵션이기 때문입니다.

출처 : https://stackoverflow.com/questions/24114676/git-error-failed-to-push-some-refs-to-remote
728x90
반응형