explain commitDifference