对为什么 Git 认为我的分支提示在原点后面感到困惑

Confused as to why Git believes my branch tip is behind the origin

我有一个从 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.

我不确定我做错了什么,但我很想知道为什么这个特定问题每隔几天就会出现。在过去,我只是简单地强制推动,但这并不能帮助我理解为什么会出现这个问题。

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

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

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

你试过这个linkGit push - suboptimal pack - out of memory吗?也许这也可以帮助你进一步..

仔细观察,Git 推动的分支似乎比您意识到的要多。

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

git config --global push.default current

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