很困惑为什么Git认为我的分支提示落后于原点

时间:2015-04-01 14:50:05

标签: git git-push

我有一个从develop创建的分支(由Atlassian Stash创建),它有一些提交。当我尝试推送我的提交时,我得到一个关于更新被拒绝的错误,因为推送的分支提示位于其远程对应的后面。根据我的理解,这意味着其他人承诺,所以我应该拉动变化。但是,没有什么可以拉动的。有趣的是看Atlassian Stash我能够看到我的推动实际上已经完成了。

$ git push
To REPO_URL
 ! [rejected]        develop -> develop (non-fast-forward)
 ! [rejected]        feature/135-add-button-to-ticket-indicating -> feature/ 135-add-button-to-ticket-indicating (non-fast-forward)
error: failed to push some refs to 'REPO_URL'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我不确定我做错了什么,但我很想知道为什么这个特殊的问题每隔几天就会变得丑陋。在过去,我只是强迫推动,但这并不能帮助我理解为什么问题首先发生。

如何诊断出现此问题的原因?

2 个答案:

答案 0 :(得分:2)

看起来,仔细检查一下,Git正在推动比你所知更多的分支。

如果您在一个分支上工作,并且当您键入git push希望推送该分支,那么您需要调整您的全局配置如下:

git config --global push.default current

这将only push the branch that you are currently on到远程存储库。

答案 1 :(得分:1)

前一段时间我遇到了同样的问题,我也收到了以下

git push github master
To git@github.com:Joey-project/project.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:Joey-project/project.git'

如果我没记错的话,一般方法是使用以下命令的变体:

git fetch github; git merge github/master

您是否尝试过此Git push - suboptimal pack - out of memory链接?也许这可以帮助你进一步..