프로젝트 (새 저장소의 모든 파일)를 푸시하려고합니다. 나는 단계를 따르지 만 푸시 git push -u origin master
하면이 오류가 발생합니다.
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:asantoya/projectnewbies.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
이 오류가 여러 번 발생하여 어떻게해야할지 알 수 없습니다.
답변
오류 메시지에 표시된 것처럼 : git pull
시도하기 전에 git push
. 현지 지점이 추적 지점과 동기화되지 않은 것 같습니다.
프로젝트 규칙 및 워크 플로에 따라 사용할 수도 있습니다 git pull --rebase
.
답변
주의 사항 : 이것은 git을 권장하지 않습니다. 리모컨의 변경 사항을 덮어 씁니다. 로컬 변경 사항을 원격 마스터로 푸시해야한다는 것을 100 % 알고있는 경우에만이를 수행하십시오.
이 시도: git push -f origin master
답변
이 명령은 나를 위해 잘 작동했습니다
git push -f origin master
답변
방금이 오류가 발생했습니다.
로컬 git 리포지토리를 만든 후 github 리포지토리를 만들었으므로 github으로 푸시하기 전에 로컬 변경 사항을 수락해야했습니다. 이 경우 github 리포지토리를 생성 할 때 선택적 단계로 생성 된 readme 파일 만 변경되었습니다.
git pull https://github.com/*username*/*repository*.git master
저장소 URL은 프로젝트 github 페이지의 여기에서 가져옵니다.
그런 다음 다시 초기화되었습니다 (필요하지 않을 수도 있음)
git init
git add .
git commit -m "update"
그런 다음 :
git push
답변
나는 github에서 새로운 저장소를 만들었고 같은 문제가 있었지만 당기는 동안 문제가 있었기 때문에 이것이 나를 위해 일했다.
그러나 이것은 모든 코드를 망칠 수 있으므로 이미 많은 코드가있는 repos에서는 권장되지 않습니다.
git push origin master --force
답변
경고:
‘ git pull
‘로 가는 것은 항상 해결책이 아니므로 조심하십시오. 저장소 히스토리를 의도적으로 변경 한 경우이 문제점 (Q에서 언급 된 문제)에 직면 할 수 있습니다. 이 경우 git은 기록 변경 사항을 원격 저장소의 새로운 변경 내용과 혼동합니다. 따라서 git push --force
호출 git pull
하면 의도적으로 기록에 대한 모든 변경 사항이 실행 취소되므로을 방문해야합니다 .
답변
git pull
도움 이 되지 않으면 변경 사항을 푸시 한 후 (A) 변경 사항 git commit --amend
을 추가하는 데 사용한 것입니다 (B). 따라서 git은 히스토리를 잃을 수 있다고 생각합니다-A의 모든 변경 사항이 포함되어 있지만 B는 다른 커밋으로 해석됩니다.
B
/
---X---A
아무도 이후 A
에 repo를 변경 하지 않으면 그렇게 할 수 있습니다 git push --force
.
그러나 A
다른 사람으로부터 변경이 발생한 경우 :
B
/
---X---A---C
그런 다음 개인 A
이 B
( C
-> D
)로 변경 한 것을 리베이스해야합니다 .
B---D
/
---X---A---C
또는 수동으로 문제를 해결하십시오. 아직 그렇게하는 방법을 생각하지 못했습니다.