Git:如何在远程原点上倒带主分支

Git:如何在远程原点上倒带主分支,git,push,Git,Push,当我在一个私人项目上搜索bug时,我向Master branch提交了5个请求,并将它们推送到远程来源(我自己的私人vps) 然后我看到提交4和5将在其他地方引起麻烦,我需要撤销它们,所以我再次签出提交3,从那时起创建了一个新的分支“Dev”,并进行了一些提交,以正确地解决问题 然后我做到了 git reset——主机上的硬头~2将其拉回到我分支Dev的点 然后,我将git合并到快进主机,返回到Dev分支的末尾 现在我有了一个本地存储库,Dev和Master都指向同一个项目的最新版本,其中包含最

当我在一个私人项目上搜索bug时,我向Master branch提交了5个请求,并将它们推送到远程来源(我自己的私人vps)

然后我看到提交4和5将在其他地方引起麻烦,我需要撤销它们,所以我再次签出提交3,从那时起创建了一个新的分支“Dev”,并进行了一些提交,以正确地解决问题

然后我做到了

git reset——主机上的硬头~2将其拉回到我分支Dev的点

然后,我将git合并到快进主机,返回到Dev分支的末尾

现在我有了一个本地存储库,Dev和Master都指向同一个项目的最新版本,其中包含最新的bug修复

问题是,当我现在尝试将项目推送到原点时,它失败并向我发出错误消息:

!![已拒绝]主机->主机(非快进) 错误:无法将某些引用推送到“myserver…myproject.git”

我做错了什么,我该如何修复它


谢谢

它只是不喜欢你推动的分支不是你推动的分支的祖先


如果确定要这样做,只需将-f标志(force)添加到push

“如果你确定”,我们的意思是:如果这是一个私人项目,如果这是一个公共项目,但你知道没有人从这个分支中退出,或者这个错误非常严重,值得让其他人费心用这种方式修复它,而不是添加更正提交。值得重复的是:你正在做的是,你正在重写历史。就像在现实生活中一样,你可以改写历史,但要做到这一点,你需要一个阴谋。IOW:每个人都必须“参与”,也就是说,每个人都必须同意改写历史。(其中“Everyone”是指“曾经从存储库中提取过的所有人,即使是传递性的”。)谢谢大家。我想我理解其中的含义。这只是一个私人项目,所以在这种情况下没有其他项目会被搞砸。在未来,虽然它不会回来困扰我,虽然它会。。。?到目前为止,它只是Master上提交的一个分支,因此新的contibuter将来不会遇到麻烦?实际上,您正在询问如何推送不是远程分支的直接后代的内容。因此,这是一个可能的重复: