It seems like git itself ought to be able to combine multiple commits into a single ubercommit for the sake of PRs, but allow pulling each of those sub-commits that constituted it in the first place afterwards for debugging and QA purposes. But I guess these 3d party tools achieve that as well.