我对名为sandbox
的分支进行了一些更改,然后我提交了更改,然后尝试将它们推送到沙盒的github版本。我收到了这条消息
To git@github.com:obromios/golf_mentor.git
! [rejected] sandbox -> sandbox (non-fast-forward)
error: failed to push some refs to 'git@github.com:obromios/golf_mentor.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
我记不起做任何会让两者失去同步的事情,比如从另一台机器推出。无论如何,我适当地做了git pull origin sandbox
并且成功完成了合并。但是当我在新合并的提交和之前被拒绝的提交之间做了git diff
时,我看不出有任何区别。但是,我现在可以将合并的提交推送到github。我之前已经看过几次这种行为,任何想法是什么导致它,以及如何解决它而不做拉?
答案 0 :(得分:0)
这可能是由github网站上的合并提交引起的。
如果您在github上进行合并,您将始终获得合并提交。例如,也许您从master到sandbox进行了合并,也许没有更改(但仍然创建了空合并提交)。
在上游进行额外的提交会阻止你推送,直到你拉出它,即使合并提交在你拉动它时没有带来任何新的改变(这似乎就是这种情况)。
我建议密切注意任何合并/拉取请求,以尽量减少这种情况。