我试图推动我的项目(所有文件在一个新的存储库)。我遵循这些步骤,但当我用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回购,并在两端重新创建相同的。目前还好。

其他回答

警告:

去“git拉”并不总是一个解决方案,所以要小心。如果您有意更改了存储库历史,您可能会面临这个问题(在Q中提到的问题)。在这种情况下,git会混淆远程回购中的历史更改和新更改。所以,你应该使用git push -force,因为调用git pull会撤销你故意对历史记录所做的所有更改。

这意味着您的远程git存储库配置为denynonfastforward = true。虽然很危险,但有时你可能真的需要覆盖git的历史记录(例如,在运行bfg——strip-blobs-big -than 100M之后),因此你可以临时将该设置修改为false (denynonfastforward = true,在your-repository.git/config中看到它),然后强制push(即git push -f)。

我也有同样的问题。 我使用Git Totoise。 右击->TotoiseGit ->清理。 现在你可以推送到Github了 这对我很有效:D

我在github创建了新的回购,我有同样的问题,但它也有问题,而拉,所以这为我工作。

但在已经有很多这样的代码的回购中,不建议这样做 会把一切都搞砸

git push origin master --force

试试这个命令:"git pull origin master"

这对我很管用。

查看这个链接:https://help.github.com/articles/dealing-with-non-fast-forward-errors