解决重设冲突后如何在不使用强制推送的情况下将分支推送到远程站点?

时间:2019-05-27 10:03:32

标签: git github

我在GitHub中有一个Git分支,其中有一个开放拉取请求。但是我无法合并它,因为GitHub抱怨与最新的master冲突的文件。然后我将master和rebase master拉到我的本地分支,并且在rebase期间遇到冲突。因此,我解决了冲突,当尝试将分支推到原点时,我的推被拒绝,错误提示我当前分支的尖端在后面。但是,当我用力推动时,它将被接受。无论如何,我可以不使用强制推动来实现这一目标?

3 个答案:

答案 0 :(得分:1)

由于重新设定基准会改变历史记录,因此需要某种强制推动。

幸运的是,有git push --force-with-lease,如果与此同时向分支添加了另一个提交,它仍然会拒绝推送。

答案 1 :(得分:0)

您应该合并而不是重新合并,这不会重写历史记录,并且无需force push就可以推送历史记录。如果您不想合并,那么很遗憾,如果没有force push,我将无法实现。

答案 2 :(得分:0)

将您的代码推送到GitHub上的新分支。 git push origin old-conflicts-branch:new-remote-branch

然后,您可以继续使用新分支。旧的分支仍然存在,因此您可以删除它或将其保留为备份。