在清理历史记录(通过交互式rebase)时,通常尝试进行交换/拆分/合并提交(以及可能的分支,例如,将分支混合关注点拆分为每个关注点的一个适当分支),但是问题是本地rebase提供了没有迹象表明两个提交是可交换的或相互依赖的(第二个可以在第一个之前移动),并且合并提交通常不能使用。
IIRC darcs'会自动推断(文本/语法)依赖性和可交换性信息,因此可以取消应用/交换补丁,但只能在这些约束范围之内。
是否有一个工具可以自动提供有关git commits之间的文本/语法依赖关系的信息?我知道这还不够 0 ,但已经很有帮助了。
[0]例如一次提交添加了一个API,第二次提交使用了它,很可能它们在语法上是可交换的,但在语义上却不是,这就是为什么darcs还提供了显式依赖的原因