2013-04-03 35 views
10

更新挂钩可以拒绝部分提交并允许其他提交。Git的提交原子?

receive_pack.c中的update()运行在一个循环中,该循环在提交期间可能会多次调用更新挂钩。每次调用更新挂钩时,它都会返回失败,看起来允许更新一些引用,如果拒绝,可以更新一些引用。

Git的更新钩子的功能是否允许可能的部分提交成功和一些失败意味着Git的提交不是原子的?

或者我在这里错过了什么?谢谢。

回答

8

是提交是原子。拒绝部分提交是不可能的。

更新钩可以在单个(未 提交)如果多个分支在同一时间被推动期间被多次调用。这允许 接受某些分支的更新,同时拒绝对其他分支的更新,但每个 接受的更新仍将指向来自推送 存储库的完整提交。