仍然比较壁球合并后的承诺差异

Still compare committed difference after squash merging

我使用 squash mergedevelop 分支合并到 main 分支。假设有提交 A、B、C 从 develop 合并到 main。更改已成功合并。我可以在 main 分支上看到 squash 提交并且文件已更新。

之后,我从develop创建了一个新分支(b-new)并将其合并到develop。但是,当我尝试再次将 maindevelop 同步时,我仍然可以看到旧的差异(提交 A、B、C)。如何解决这个问题?

清理:

谢谢。

这个场景是 described in the Git FAQ in some detail,您有两个 运行 长的分支并且正在使用压缩合并。粗略地说,答案是,如果您将 squash 合并与两个长期存在的分支一起使用,那么您将陷入痛苦的世界,并且无法避免。

如果 develop 打算成为一个功能分支,那么为了避免看到这些提交,您应该每次都从 main 重新创建它,方法是先删除它,或者使用 git checkout -B develop main。如果 develop 打算与 main 一起成为长 运行 分支,那么您不需要使用压缩合并。