当我试图将我的代码推送到GitHub时,我遇到了一些问题。

Pushing to git@github.com:519ebayproject/519ebayproject.git
To git@github.com:519ebayproject/519ebayproject.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:519ebayproject/519ebayproject.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我还没有在存储库中推入任何东西,那么为什么我需要拉出一些东西呢?


当前回答

我遇到了同样的问题,结果是我在一个不同的(本地)分支上,而不是我认为的,正确的本地分支在远程提交时落后了。

我的解决方案:签出正确的分支,从其他本地分支中选择提交,git拉和git推

其他回答

我遇到了同样的问题,我所做的是我首先用这个力推它

git push --force

我这样做后,我提交了文件,并得到了一个错误。它确实提交了所有文件并推送了它们。 然后当我第二次推送到github时,我按照它的要求做了,然后就没问题了。希望这对你也有用:)

此问题通常是由创建自述文件引起的。Md文件,被算作一个提交,在系统上不是本地同步的,并且缺少后面的头,因此,它显示一个git拉请求。您可以尝试避免自述文件,然后尝试提交。这对我来说是有效的。

只是有同样的问题,但在我的情况下,我在遥控器上输入了错误的分支。所以,这似乎是这个问题的另一个来源……仔细检查你是否推到了正确的分支。

推送前是否更新了代码?

在你推送任何东西之前使用git pull origin master。

我假设您正在使用origin作为遥控器的名称。

你需要先拉后推,在你推送一些东西之前让你的本地存储库更新(以防其他人已经在github.com上更新了代码)。这有助于在局部解决冲突。

正如这条信息告诉你的,

合并远程更改(例如:git拉)

使用git pull将最新的更改从远程存储库拉到本地存储库。在这种情况下,提取更改将需要合并,因为您已经对本地存储库进行了更改。

我将提供一个例子和一张图片来解释。让我们假设你最后一次从原点/分支抽取是在提交b。你已经完成并提交了一些工作(提交C)。与此同时,其他人已经完成了他们的工作,并将其推到原点/分支(提交D)。这两个分支之间将需要合并。

——提交C / / / origin/branch:提交A ------提交B ----提交D

因为您是想要推送的人,Git会强制您执行合并。为此,您必须首先从原点/分支获取更改。

本地分支:——提交C——提交E / / / / / / origin/branch:提交A ------提交B ----提交D

在完成合并之后,您现在可以通过推送您的更改将原点/分支快进到Commit E。

Git要求您自己处理合并,因为合并可能会导致冲突。