git push origin master
,我得到一些错误,如何它无法推送一些参考。
----@--------- /c/git/repo/---- (master)
$ git push origin master
--------------------------------
--------------------------------
To -----------------------------
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/-----/----.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 push --force origin master
它有效,为什么会这样,为什么我每次都要这样做?
答案 0 :(得分:4)
此错误......
! [rejected] master -> master (non-fast-forward)
...表示远程存储库包含尚未存储在存储库中的更改。如果您在GitHub上创建存储库,如果您要求GitHub使用.gitignore
或README
文件预填充您的存储库,则可以创建非空存储库。
在任何情况下,当您看到此错误时,而不是使用--force
(它将覆盖远程存储库中的任何更改),您应该只运行:
git pull
这将关闭所有更改并将它们合并到您的本地存储库中,此时git push
应该可以正常工作。
如果你不确定那里有什么,你也可以将远程存储库克隆到另一个目录并检查它的内容。