我在推送时不断从git收到此错误消息,即使我在翻过来之后尝试它:
! [rejected] master -> master (non-fast-forward) error: failed to push some refs to '[repo url]' 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.
以下是分支历史记录的内容:
A---B---C
| |
D E-F
A initial commit (me)
B some commit (me)
C master
D some commit (other dev)
E remotes/origin/master - Merge branch 'master' of [repo url]
F Local uncommitted changes, not checked into an index
从这里开始,当我拉,没有任何东西来。当我推,我得到错误。我怎样才能再次成功推动?
答案 0 :(得分:6)
你需要在推送之前拥有共同的祖先,最简单的方法是git pull
(或git pull --rebase
如果你想避免合并提交,并且rebase对你来说不是问题。)
答案 1 :(得分:5)
我遇到了这个问题,原因如下:
我的机器中的本地分支(具有不同的来源)未更新(并且已被其他用户修改)。您必须移动到尚未更新的分支(git checkout [branch in question])并执行git pull。
这解决了我的问题。在这种特殊情况下,由于此消息
“![拒绝]主人 - >主人(非快进)!”
你必须移动到主分支(git checkout master)做一个git pull,然后回到你正在处理的任何分支(git checkout whateverBranch),现在你应该能够毫无问题地进行推送。
我不明白为什么会这样;可能是git push的本质是检查推送时没有正确更新的所有本地分支。
答案 2 :(得分:4)
您的问题的解决方案是:
在以下网址标题“推送分支”下阅读更多内容:
Dealing with "non-fast forward rejects"
希望它有所帮助。
由于