commit 协议封装