git push error:当前分支在其远程对应的后面

时间:2014-05-05 08:45:55

标签: git

我在我的系统中创建了一些文件,提交它并将其推送到远程存储库。之后,我不得不使用命令git reset HEAD~1删除该提交。

现在我修改了之前创建的文件并再次提交了代码。现在,当我试图推送代码时,它很容易说:

Updates were rejected because the tip of your current branch is behind its remote counterpart.Merge the remote changes (e.g. 'git pull') before pushing again.

但合并必须通过查看我想要保留/拒绝的方式手动完成,我不想这样做。

我尝试在推送时使用--force选项,但它也失败并出现错误:

To prevent you from losing history, non-fast-forward updates were rejected.

由于没有人使用远程存储库中的代码,我只想覆盖远程存储库中的文件。有没有办法做到这一点。??

2 个答案:

答案 0 :(得分:0)

我不确定你的问题是什么,但这是你如何合并两个提交或删除其中一个提交。

不建议重写历史记录,因为已经撤消提交的其他人在下一次推送时会遇到问题。

如果您仍想删除上次推送的提交,则必须:

git rebase -i HEAD^^

您将看到最后两个提交内容:

pick 3df324 Add README.md
pick 3245cf bump version

合并两个提交:

bump version是最后一次提交。您将pick更改为squash,然后保存+退出该文件。您将看到另一个文件已打开,您必须保留您要使用的文本。接下来去做git push -f

删除提交:

如果要删除提交,只需删除它并保存+退出文件。

您可以查看Github docummentation以获取更多信息。

答案 1 :(得分:0)

最好使用git pull然后解决冲突。由于存在冲突时,这些代码与<<<<<<>>>>>围绕在一起,因此没有多少手动工作。并且========之前的代码是您的,之后的代码来自远程存储库。

之后推送代码。你不会得到任何错误。

解决冲突并不难。

通过这种方式你也不会丢失任何提交。