我试图推动我的项目(所有文件在一个新的存储库)。我遵循这些步骤,但当我用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拉,然后回去开发分支和git推来修复它。

$ git fetch && git checkout master
$ git pull
$ git fetch && git checkout develop
$ git push

其他回答

这是因为您对它的主人进行了相互冲突的更改。你的存储库服务器不能用这些词告诉你,所以它给出了这个错误因为这不是他为你处理这些冲突的问题,所以他让你自己去做。是吗?

1- git拉 这将把您的代码从存储库合并到站点管理员的代码。 所以冲突就显现出来了。

2-处理这些手册冲突。

3-

git push origin master

瞬间,你的问题就解决了。

试试这个,对我来说很管用

这是个错误

我通过以下步骤解决了这个问题:

git add *
git fetch
git pull origin main --allow-unrelated-histories or git pull --rebase <your_reponame> <your_branch>
git push -u "<pass your project clone url>" main or git pull origin [branch]

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

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

这也可能是由于在给Repo命名时引起的一些名称错误造成的。 如果上面的任何一个答案都不起作用,下面这个对我来说是有效的:

删除该repo并创建一个新的repo,并再次尝试以下命令:

cd 'Local Directory Path'
git remote add origin *your_git_name.git*
git push -u origin master

如果add origin显示已经存在,则使用以下方法:

git remote set-url origin *your_git_name.git*