处理不同的本地和远程功能分支

时间:2019-08-13 13:51:22

标签: git

我基于master分支创建了一个功能分支。 该分支具有本地副本和远程副本(需要与其他开发人员一起使用)。 Master分支已经升级,因此我对本地功能分支(git rebase master)进行了重新定位,以适应master的最新更新。 但是,现在我的本地功能分支和远程功能分支已经分开了-并且我无法推送到远程功能分支(除非我使用-f标志)。

有没有一种方法可以正确解决此问题而无需强行推动?

1 个答案:

答案 0 :(得分:3)

  

有没有一种方法可以正确解决此问题而无需强行推动?

您将不得不使用git reset --hard origin/master放弃重新建立基础的分支,这会将您的本地分支恢复为master上的origin状态。然后合并 master到您的分支中,而不是重新部署,这样您的分支的历史记录就与origin/master兼容。

在没有-f--force的情况下,您无法重新建立分支并继续推送分支。您正在以某种方式重写本地历史记录,从而使您的分支机构与远程分支机构以及其他所有人的本地分支机构根本不同,从而使您无法进行更改。强行解决问题只会给当前共享您分支的每个其他人带来问题,最终您的提交历史将比仅仅git merge origin/master复杂得多( far )功能分支以保持最新状态。

如果您担心线性历史记录,那么最好的解决办法是在将要素分支合并到master中时,通过变基或压缩提交来解决此问题。如果您使用的是Github并拉出请求以将更改合并到master中,Github会对此提供帮助。