我在我的系统中创建了一些文件,提交它并将其推送到远程存储库。之后,我不得不使用命令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.
由于没有人使用远程存储库中的代码,我只想覆盖远程存储库中的文件。有没有办法做到这一点。??
答案 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
然后解决冲突。由于存在冲突时,这些代码与<<<<<<
和>>>>>
围绕在一起,因此没有多少手动工作。并且========
之前的代码是您的,之后的代码来自远程存储库。
之后推送代码。你不会得到任何错误。
解决冲突并不难。
通过这种方式你也不会丢失任何提交。