12

更新钩子可以拒绝部分提交并允许其他部分。

receive_pack.c 中的 update() 在循环中运行,然后在提交期间可能会多次调用更新钩子。每次调用更新钩子时,它都会返回失败,似乎允许更新一些引用,而如果拒绝,则不更新一些引用。

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

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

4

1 回答 1

10

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

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

于 2013-04-03T21:38:44.700 回答