Git的承诺是原子的吗?

时间:2013-04-03 21:28:06

标签: git version-control

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

receive_pack.c中的

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

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

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

1 个答案:

答案 0 :(得分:8)

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

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