2

我设置了几个 git 存储库,每次我设置一个新存储库并进行第一次提交和推送时,此命令都会失败git push origin master,并且我会收到一些关于它如何无法推送一些 refs 的错误。

----@--------- /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,为什么会这样,为什么我每次都必须这样做?

4

1 回答 1

4

这个错误...

 ! [rejected]        master -> master (non-fast-forward)

...表示远程存储库具有尚未在您的存储库中的更改。.gitignore如果您在 GitHub 上创建存储库,如果您要求 GitHub 使用或README文件预先填充您的存储库,则可以创建一个非空存储库。

无论如何,当您看到此错误时,而不是使用--force(这将覆盖远程存储库中的任何更改),您可能应该只运行:

git pull

这将降低任何更改并将它们合并到您的本地存储库中,此时 agit push应该可以正常工作。

如果您不确定那里有什么,您还可以将远程存储库克隆到另一个目录并检查它的内容。

于 2012-08-01T17:15:03.973 回答