Git的承诺是原子的吗?

jam*_*asy 10 git version-control

更新挂钩可以拒绝提交的某些部分并允许其他部分.

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

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

或者我在这里缺少什么?谢谢.

qqx*_*qqx 8

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

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