拒绝主 – >主(非快进)
我试图推动我的项目(所有文件在一个新的存储库)。 我遵循的步骤,但是当我推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 (eg 'git pull') before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details.
真的很多次我得到这个错误,不知道该怎么做。
正如错误信息所示:在尝试git push
之前, git pull
。 显然,您的本地分支与跟踪分支不同步。
根据项目规则和你的工作stream程,你可能也想使用git pull --rebase
。
试试这个: git push -f origin master
我刚收到这个错误。
创build我的本地git仓库后,我创build了一个github仓库,所以我需要在推送到github之前接受更改到本地。 在这种情况下,唯一的变化是在创buildgithub存储库时作为可选步骤创build的自述文件。
git pull https://github.com/*username*/*repository*.git master
仓库URL从这里得到在项目github页面:
然后我重新初始化(这可能不需要)
git init git add . git commit -m "update"
然后推:
git push
! [拒绝]主 – >主(非快进)
不要惊慌,这是非常容易解决的。 所有你需要做的是发出一个拉,你的分支将是快速的:
$ git pull myrepo master
然后重试你的推,一切都应该没问题:
$ git push github master
如果git pull
没有帮助,那么可能你已经推动你的更改(A),之后使用git commit --amend
来添加更多的更改(B)。 因此,git认为你可能会失去历史 – 它将B解释为一个不同的提交,尽pipe它包含了A的所有变化。
B / ---X---A
如果没有人更改A
后的回购,那么你可以做git push --force
。
但是,如果A
从他人那里改变了:
B / ---X---A---C
那么你必须改变从A
到B
变化( C
– > D
)。
B---D / ---X---A---C
或手动解决问题。 我还没有想过如何去做。
我已经在github中创build了新的回购,而且我也遇到了同样的问题,但是在回收时也有问题,所以这对我有用。
但是这不build议在repos已经有很多代码,因为这可能会搞砸了一切
git push origin master --force
关键是要去做“混帐”并不总是一个解决scheme。 如果您有意更改存储库历史logging,也可能会遇到此问题。 在这种情况下,git将您的历史更改与远程回购中的新更改混淆在一起。 所以,你应该去做一个git push --force
,因为调用git pull
将故意地撤销你对历史的所有修改。
试试这个命令:“git pull origin master”
它为我工作。
检查这个链接: https : //help.github.com/articles/dealing-with-non-fast-forward-errors
你需要做的
git branch
如果输出是这样的:
* (no branch) master
然后做
git checkout master
确保您没有任何挂起的提交,因为检出将会丢失所有未提交的更改。
我在开发机器上遇到了这个问题。 dev
部门推动正常,但master
分支给了我(而当git push
在dev
分支):
! [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
分支上也工作的很好。
使用这个命令:
git pull --allow-unrelated-histories <nick name of repository> <branch name>
喜欢:
git pull --allow-unrelated-histories origin master
当项目没有任何共同的祖先时,会发生此错误。
唯一我能解决这个问题是删除本地和git回购,并在两端再次创build相同。 现在工作良好。
当我在开发分支和我的主分支没有与最新的更新时发生在我身上。
所以当我试图从开发分支git推我有这个错误。
我通过切换到主分支,git拉,然后回去开发分支和git推。
$ git fetch && git checkout master $ git pull $ git fetch && git checkout develop $ git push
我有同样的问题。 我使用Git Totoise。 只需点击右键 – > TotoiseGit – >清理。 现在你可以推到Github它对我工作得很好:D
这是因为你对主人做出了相互冲突的改变。 而你的存储库服务器不能告诉你,用这些话,所以它给出了这个错误,因为这不是他为你处理这些冲突的问题,所以他要求你自己做。 作为?
1- git pull
这将把你的代码从你的代码库合并到你的代码中。 所以显示了冲突。
2-处理这些手册的冲突。
3-
git push origin master
而且,你的问题已经解决了。