当我使用命令查看日志树时
git log --graph --decorate --pretty=oneline --abbrev-commit
Run Code Online (Sandbox Code Playgroud)
我看到下一条日志消息:
* 5bfe287 Squashed commit of the following:
Run Code Online (Sandbox Code Playgroud)
是否有一个选项可以--expand-squash将此类提交视为分支?
git log --graph --decorate --pretty=oneline --abbrev-commit --expand-squash
* 5bfe287 Squashed commit of the following:
|\
| * b10cbf5 Do not debug befer/after DB:: actions
| * 453e963 Debug debugger: implemented tescase for returning from debugger
|/
Run Code Online (Sandbox Code Playgroud)
不,1没有办法做到这一点。挤压合并根本不是合并。这是一个新的提交,它复制了一系列旧提交的组合效果,就像您git cherry-pick -n按顺序使用了每个旧提交一样。新的南瓜提交与旧的提交没有链接,并且旧的提交甚至可能不在存储库中(它们可能从未发送给您,或者,如果您之前自己进行了这些提交,它们仅仍然在您的存储库中如果您将它们保留在周围,例如通过引用日志或旧分支或其他方式)。
挤压“合并”对于某些目的很有用,但不应该用于隐藏您稍后可能想再次看到的单个提交。对这些使用真正的合并。这就是真正合并的目的:保留实际历史记录。它与挤压合并的目的相反:丢弃实际的历史记录,用新的、更简单的历史记录替换它。
1这假设所讨论的提交是使用“挤压合并”功能进行的。不过,如果这是真正的合并,您可能已经看到了您关心的历史记录。