Git 在解决重定基础冲突后,如何在不使用强制推送的情况下将分支推送到远程?

Git 在解决重定基础冲突后,如何在不使用强制推送的情况下将分支推送到远程?,git,github,Git,Github,我有一个Git分支,在GitHub中有一个打开的pull请求。但我不能合并它,因为GitHub抱怨说有一些与最新主控文件冲突的文件。然后我将master和rebase master拉到我的本地分支,在rebase期间,我遇到了冲突。所以我解决了冲突,当尝试将分支推送到原点时,我的推送被拒绝,错误显示当前分支的尖端落后。然而,当我强制推进时,它将被接受。无论如何,我可以在不使用强制推送的情况下实现这一点?您应该合并,而不是重新设置,这将不会重写历史,并且您将能够在不使用强制推送的情况下推送它。如果

我有一个Git分支,在GitHub中有一个打开的pull请求。但我不能合并它,因为GitHub抱怨说有一些与最新主控文件冲突的文件。然后我将master和rebase master拉到我的本地分支,在rebase期间,我遇到了冲突。所以我解决了冲突,当尝试将分支推送到原点时,我的推送被拒绝,错误显示当前分支的尖端落后。然而,当我强制推进时,它将被接受。无论如何,我可以在不使用强制推送的情况下实现这一点?

您应该合并,而不是重新设置,这将不会重写历史,并且您将能够在不使用强制推送的情况下推送它。如果您不想合并,那么不幸的是,如果没有强制推送,我就无法实现这一点,因为重定基址会改变历史,因此需要某种强制推送


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

将代码推送到GitHub上的新分支。
git推送源旧冲突分支:新远程分支


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

您重写了分支的历史记录,因此必须强制推送才能使其工作。
--force
的需要来自于您的重新基础,而不是冲突解决。它也会在非冲突的重新基准后被拒绝,但不会在(冲突或非冲突的)合并中被拒绝。