질문 : 자식 오류 : 일부 참조를 원격으로 푸시하지 못했습니다.
왠지 지금은 할 수 없지만 어제는 할 수있었습니다. 아마도 구성이나 뭔가를 엉망으로 만들었을 것입니다.
이것은 일어나는 일입니다 :
git push origin master를 사용할 때
내 작업 디렉토리 및 원격 저장소는 다음과 같습니다.
답변
(참고 : 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
'개발관련 > Git' 카테고리의 다른 글
Git : 원격 오리진 마스터에서 단일 파일을 업데이트 / 체크 아웃하는 방법 (0) | 2021.11.01 |
---|---|
되 돌린 Git 커밋을 "복원 취소" 하는 방법 (0) | 2021.10.27 |
git을 사용하여 최신 개정판 얻기 (0) | 2021.10.21 |
git 특정 파일을 숨기는 방법 (0) | 2021.10.21 |
특정 Git 브랜치를 복제하는 방법 (0) | 2021.10.21 |