commit to target id, not head