我正在使用git来管理我的两台计算机和开发。我正在尝试对GitHub进行更改,我得到了这个错误:

未能推动一些裁判<repo>。为了防止您丢失历史记录,非快速更新被拒绝。合并遥控器更改,然后再推动。

可能是什么原因造成的?我该如何解决这个问题?

EDIT:

拉取存储库会返回以下内容:

*分支master->master(非快进)已经是最新的

推动仍然给我带来上述错误。

答案

GitHub 有一个不错的部分,名为"处理"非快进"错误"

这个错误一开始可能会有点让人不知所措,不要害怕。
Simply put, git cannot make the change on the remote without losing commits, so it refuses the push
通常这是由另一个用户推送到同一分支引起的。

在其他情况下,此错误是使用以下命令在本地进行破坏性更改的结果git commit --amend或者git rebase
虽然您可以通过添加来覆盖遥控器--forcepush命令,只有当您绝对确定这就是您想要执行的操作时才应该执行此操作。
Force-Pushes可能会给其他用户提供远程分支的用户引起问题,并且被认为是不良做法。When in doubt, don’t force-push


git不能像快速前向合并那样在遥控器上进行更改,视觉GIT参考说明:

alt text

这不是确切地 您的情况,但有助于查看"快进"是什么(在哪里HEAD分支机构简单地转移到了最新的新提交中)。


这 “branch master->master (non-fast-forward) Already-up-to-date “通常用于不跟踪其远程反零件的本地分支。
例如,请参见这个问题”Git Pull说最新,但Git推动拒绝向前拒绝"。
或两个分支机构连接,但与各自的历史分歧:
看 “永无止境的git故事 - 我在这里做错了什么?

这意味着您的颠覆分支和远程Git Master Branch不同意某件事。
将一些变化推向了一个不在另一个的变化。
火起来gitk --all,它应该为您提供有关出了什么问题的线索 - 在历史上寻找"叉子”。

来自: stackoverflow.com