无法推送到git存储库

时间:2010-12-28 21:54:42

标签: git

我在推送时不断从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

从这里开始,当我拉,没有任何东西来。当我推,我得到错误。我怎样才能再次成功推动?

3 个答案:

答案 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)

您的问题的解决方案是:

  1. “提交”更改,以便将这些更改提交到本地存储库。
  2. 然后从github / git服务器“拉”代码
  3. 然后将代码“推送”到github / git服务器,您将不会遇到任何问题。
  4. 在以下网址标题“推送分支”下阅读更多内容:

    Dealing with "non-fast forward rejects"

    希望它有所帮助。

    由于