我试图推动我的项目(所有文件在一个新的存储库)。我遵循这些步骤,但当我用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.

我得到这个错误很多次,不知道该怎么做。


当前回答

我也得到了同样的错误,但我很容易解决它通过获取其url 作为

git fetch origin Your repository origin

然后简单地应用命令

git push -f origin master

你会得到一个好结果

其他回答

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

正如错误消息所说:在你尝试git push之前,git拉。显然,您的本地分支与跟踪分支不同步。

根据项目规则和你的工作流程,你可能还想使用git pull -rebase。

这是因为你在master中做了一些更改,所以项目要求你先拉。如果你想推它,你可以输入以下命令使用蛮力:

git push -f origin master

记得先提交你的修改:

git add .
git commit -m "Your commit message"

我的遥控器不与本地同步,所以这对我来说很有效

git pull --rebase

并确保当你再次拉git时,它应该说Already up to date 现在你可以推到原点了

假设你已经有git远程添加源远程存储库URL

do

git push origin master

截图说明了一切

或者你也可以这样做

Git存储(暂时存储未提交的工作) Git pull(使本地和远程同步) Git stash pop(返回你未提交的更改) git推

我在一台开发机器上遇到了这个问题。开发部门进展不错,但是 主分支给了我(当git在开发分支上时):

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

所以我试着:

git checkout master
git pull

这给了我:

You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either.

我发现主分支从.git/config中丢失了,并添加了:

[branch "master"]
    remote = origin
    merge = refs/heads/master

后来git push也在dev分支上工作得很好。