GitHub - 错误:无法将某些引用推送到 'git@github.com:myrepo.git'

64
我运行了以下命令:

git add .

git commit -m 't'

接下来,当运行以下命令时:

git push origin development

我遇到了以下错误:

To git@github.com:myrepo.git
 ! [rejected]        development -> development (non-fast-forward)
error: failed to push some refs to 'git@github.com:myrepo.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.

有什么方法可以解决上述错误吗?
15个回答

90

你的源代码库已经超前于本地代码库。在进行推送之前,您需要按照以下方式从源代码库拉取更改。这可���在提交和推送之间执行。

git pull origin development

development 是指你想要拉取的分支。 如果你想从 master 分支进行拉取,则输入以下内容。

git pull origin master

8
以上信息中的“development”是指你想要拉取的分支。所以,如果你正在使用“master”分支,你应该输入:git pull origin master - Myna

37

在我的情况下,GitHub 崩溃了。

也许还可以检查 https://www.githubstatus.com/

您可以通过邮件和短信订阅通知来了解何时可以再次推送更改。


9

我曾经遇到过同样的问题,并按照以下步骤解决(如果您有本地文件夹中的项目,请按照以下步骤操作):

  1. 在GitHub上创建一个新的仓库
  2. 进入本地文件夹并执行“git init”
  3. 执行“git remote add origin”命令,后面跟上您的仓库url(从您的仓库中复制即可)
  4. 执行“git add -A”命令
  5. 执行“git commit -m"your commit"”命令
  6. 执行“git push -u origin master”命令

7

我也遇到了这个错误: ! [remote rejected] main -> main (failure) error: failed to push some refs to '<repository>'

后来发现这是原因:

enter image description here


6
在我的情况下,出现了这个错误是因为我在将一个已存在的项目上传到 Github 上创建仓库后忘记进行提交。所以我按照以下步骤解决了问题:
git add .
git commit -m"commentary"

然后我能够输入:

git push -u origin master

5

我使用了这个命令,它对我来说很有效:

>git push -f origin master

但请注意,这可能会删除您已经在远程仓库上拥有的一些文件。这对我非常有用,因为情况有所不同; 我正在将本地项目推送到空的远程仓库,但 READ.ME 文件已存在。


4
你可以在你的控制台中输入以下命令:
git pull origin

然后按下TAB键,输入您的“主”存储库。

4
尝试这个:
  1. git push -u origin master
  2. git push -f origin master

对我来说有时候 #1 生效,有时候 #2 生效。我不确定为什么会出现这种情况。


-f 起作用,因为它是“强制执行”的意思。 - Yvonne.D
对我来说,-u 起作用了,而令人惊讶的是 -f 没有起作用! - Ali Afsahnoudeh

1
在Windows中,您需要使用双引号""。因此,命令应该是:
git commit -m "t"

1
在我的情况下,git push试图推送不止当前分支的内容,因此,由于其他分支未同步,我遇到了这个错误。
要解决这个问题,你可以使用:git config --global push.default simple 这将使git仅推送当前分支。
这只适用于较新版本的git。例如:1.7.9.5无法使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接