压缩的Git合并导致分支不同步
我的开发分支与我的主分支有着不同的历史,尽管它们由于挤压合并而包含相同的内容,但我的开发分支的历史与我的主分支不同 在Github上,我对从压缩的Git合并导致分支不同步,git,github,Git,Github,我的开发分支与我的主分支有着不同的历史,尽管它们由于挤压合并而包含相同的内容,但我的开发分支的历史与我的主分支不同 在Github上,我对从dev分支到master的拉取请求使用了“挤压和合并”选项。这导致了master和dev之间实际上不存在的分离。根据Github,我的dev分支是在master之前的一系列提交,尽管这些提交被压缩合并到master 此外,我从dev到master的各种合并在dev上不存在,因此dev也在master后面。包括master上存在的提交,我没有将其合并到dev,
dev
分支到master
的拉取请求使用了“挤压和合并”选项。这导致了master
和dev
之间实际上不存在的分离。根据Github,我的dev
分支是在master
之前的一系列提交,尽管这些提交被压缩合并到master
此外,我从dev
到master
的各种合并在dev
上不存在,因此dev
也在master
后面。包括master
上存在的提交,我没有将其合并到dev
,因为我知道这只会让事情变得更糟
我如何解决这个问题?理想情况下,由于两个分支实际上是相同的(除了master
上的1个commit应该在dev
之前),如何同步这些分支
如果需要更多信息来帮助理解我的树,我可以用更多信息更新我的问题
更新:
我发现了一个类似的问题,我相信确实是壁球造成了这种混乱。恐怕我必须恢复合并,并在不挤压的情况下再次执行合并,以便Github能够正确理解这两个分支的历史
或者,我可以挤压dev
分支本身上的提交,并重新合并一个提交,正如我所希望的那样,但这会牺牲分支的历史记录。我想我需要在这两种方法中选择一种。还有别的办法吗
或者,我可以挤压dev
分支本身上的提交,并按照我的偏好重新合并一个提交
如果您从推送的dev
分支到master
执行PR,并合并挤压它。。。然后您的本地dev
应该有效地重置为新的master
状态
git fetch
git branch old-dev dev
git checkout -B dev origin/master
然后您可以从新的
dev
分支继续事实上,我认为最好的选择可能是放弃当前dev分支的历史记录,并从压缩的历史记录中工作。这就是我的问题所在,我想-我希望Git/Github能够将master
上的1个合并提交识别为dev
上的提交集合,但它们被认为是完全独立的、不相关的提交,从而在历史上造成这种分歧。@Psymøn是的。如果您需要的话,我将旧的开发历史记录保存在本地分支“旧开发”中。