github - Git推送失败,“非快进更新被拒绝”

我通过Git Online编辑了我的GIT存储库。 我尝试推送本地代码更改后,出现错误:

Git push failed, To prevent from losing history, non-fast forward updates were rejected.

我怎样才能解决这个问题?

Sarath asked 2019-08-11T01:31:08Z
11个解决方案
134 votes

先拉变化:

git pull origin branch_name
iafonov answered 2019-08-11T01:31:19Z
83 votes

如果您确定要推送,请在命令行中添加--force。 例如。 使用git push origin --force(我推荐使用命令行,因为您可以通过命令行找到其他用户的更多支持。使用SmartGit可能无法实现这一点。)有关详细信息,请访问此站点:[http://help.github.com/遥控器/]

Matt answered 2019-08-11T01:31:44Z
20 votes

在推送之前,使用rebase选项进行git pull。 这将获得您在线(在您的原点)所做的更改并在本地应用它们,然后在其上添加您的本地更改。

git pull --rebase

现在,你可以推送到远程

git push 

有关更多信息,请参阅Git rebase解释和第3.6章Git分支 - 重新定位。

satishgoda answered 2019-08-11T01:32:22Z
12 votes

我遇到了同样的错误,只需添加" - 强制" 对命令,它的工作原理

git push origin master --force
Wen Qi answered 2019-08-11T01:32:47Z
4 votes

我有同样的问题。
原因是,我的本地分支机构以某种方式失去了对远程对手的跟踪。

git branch branch_name --set-upstream-to=origin/branch_name
git pull

并解决合并冲突,我能够推动。

hardmooth answered 2019-08-11T01:33:26Z
4 votes

您可以在命令中添加--force-with-lease,它将起作用。

git push --force-with-lease

--force具有破坏性,因为它无条件地用本地的任何东西覆盖远程存储库。 但是 - 强制租赁确保您不会覆盖其他人的工作。

在这里查看更多信息。

igorjosesantos answered 2019-08-11T01:34:05Z
1 votes

(一)Netbeans 7.1的解决方案:尝试拉动。 这可能也会失败。 现在看一下日志(它们现在通常在IDE中显示)。 有一条/多条线说:

"由于此文件导致拉错:"

搜索该文件,将其删除(之前进行备份)。 通常它是.gitignore文件,因此您不会删除代码。 重做推动。 一切都应该现在正常。

Sliq answered 2019-08-11T01:34:43Z
0 votes

我有同样的问题。IS解决了

git checkout <name branch>
git pull origin <name branch>
git push origin <name branch>
Andrea Perdicchia answered 2019-08-11T01:35:07Z
0 votes

这对我有用。 它可以在这里的git文档中找到

如果您在所需的分支上,您可以这样做:

git fetch origin
# Fetches updates made to an online repository
git merge origin YOUR_BRANCH_NAME
# Merges updates made online with your local work
CodeChops answered 2019-08-11T01:35:39Z
0 votes

遇到同样的问题,要解决它,运行以下git push --set-upstream {url} master命令。

  • git push --set-upstream {url} master
  • git push --set-upstream {url} master

您必须先在github上创建存储库。

blackFoxCoder answered 2019-08-11T01:36:18Z
0 votes

有时候,当从你的git中拉出来时,HEAD会分离。 您可以输入以下命令来检查:

git branch 
  • (HEAD与8790704分离)

    开发

移动到您的分支机构并从各自的分支机构中获取新的优势会更好。

git checkout develop

git pull origin develop

git push origin develop
Abhinav answered 2019-08-11T01:37:07Z
translate from https://stackoverflow.com:/questions/6897600/git-push-failed-non-fast-forward-updates-were-rejected