GitHub에는 ""빠른 전달 "오류 처리" 라는 멋진 섹션이 있습니다 .
이 오류는 처음에는 약간 압도적 일 수 있습니다. 두려워하지 마십시오.
간단히 말해서, git은 커밋을 잃지 않고 리모컨을 변경할 수 없으므로 푸시를 거부합니다 .
일반적으로 이것은 다른 사용자가 같은 지점으로 이동했기 때문에 발생합니다. 원격 브랜치를 가져오고 병합하거나 pull을 사용하여 한 번에 두 가지를 모두 수행하여이 문제를 해결할 수 있습니다.
다른 경우에이 에러와 같은 명령을 사용하여 국부적으로 이루어지는 파괴 변화의 결과 git commit --amend
나 git rebase
.
당신은 추가하여 원격를 오버라이드 (override) 할 수도 있지만 --force
받는 push
명령이 당신이 원하는 것을 절대적으로 확신 할 경우에만 그렇게해야한다.
강제 푸쉬는 원격 브랜치를 가져온 다른 사용자에게 문제를 일으킬 수 있으며 나쁜 습관으로 간주됩니다. 확실하지 않은 경우 억지로 밀어 넣지 마십시오 .
Git은 Visual Git Reference가 다음 과 같이 빨리 감기 병합처럼 원격에서 변경할 수 없습니다 .
이것은 정확히 당신의 경우는 아니지만 "앞으로 빨리"가 무엇인지 ( HEAD
지점의 지점이 새로운 최근 커밋으로 이동 한 경우) 확인하는 데 도움이됩니다 .
" branch master->master (non-fast-forward) Already-up-to-date
"은 일반적으로 원격 상대방을 추적하지 않는 로컬 지점에 사용됩니다.
예를 들어이 git pull은 최신이지만 git push는 non-fast forward를 거부합니다 .
또는 두 가지가 연결되어 있지만, 각각의 역사를 가진 불일치에서 :
페이지의 " GIT의 이야기를 절대로 끝이없는 - 여기 무슨 일을하고 있는가? "
이는 서브 버전 브랜치와 원격 git 마스터 브랜치가 무언가에 동의하지 않음을 의미합니다.
일부 변경 사항이 다른 변경 사항이 아닌 다른 항목으로 푸시 / 커밋되었습니다.
불 gitk --all
이 붙으면 무엇이 잘못되었는지에 대한 힌트를 얻을 수 있습니다. 역사에서 "포크"를 찾으십시오.