挤压的Git合并导致分支不同步

时间:2018-12-13 04:08:41

标签: git github

尽管我的dev分支由于合并合并而包含相同的内容,但我的dev分支的历史与我的主人有所不同。

在Github上,我对从dev分支到master的拉取请求使用了“压缩并合并”选项。这导致masterdev之间的分隔实际上并不存在。根据Github的说法,我的dev分支是master之前的许多提交,尽管这些提交被压合并为master

此外,我从masterdev的各种合并在dev上不存在,因此dev也在后面 master。包括我尚未合并到master上的dev上的提交,因为我知道这样做只会使情况变得更糟。

dev compared to master

如何解决此问题?理想情况下,由于两个分支实际上是相同的(除了master之前在dev上的1次提交),如何同步这些分支?

如果需要更多信息来帮助理解我的树,我可以使用更多信息来更新我的问题。

更新: 我发现了类似的问题here,我相信确实是南瓜造成了这种混乱。恐怕我将不得不还原合并并再次执行,而不会挤压,以使Github能够正确理解两个分支的历史。

我可以选择压缩dev分支上的提交,然后重新合并一个提交(如我所愿),但这牺牲了分支的历史。我认为我需要在这两种方法之一之间做出选择。还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

  

我可以选择压缩dev分支本身上的提交,然后重新合并一个提交,如我所愿。

如果您从推送的dev分支到master进行PR,然后合并压缩...那么您的本地dev应该有效地重置为新的{{1 }}状态。

master

然后您可以从新的git fetch git branch old-dev dev git checkout -B dev origin/master 分支继续