2013-04-03 99 views
10

更新掛鉤可以拒絕部分提交併允許其他提交。Git的提交原子?

receive_pack.c中的update()運行在一個循環中,該循環在提交期間可能會多次調用更新掛鉤。每次調用更新掛鉤時,它都會返回失敗,看起來允許更新一些引用,如果拒絕,可以更新一些引用。

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

或者我在這裏錯過了什麼?謝謝。

回答

8

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

更新鉤可以在單個(未 提交)如果多個分支在同一時間被推動期間被多次調用。這允許 接受某些分支的更新,同時拒絕對其他分支的更新,但每個 接受的更新仍將指向來自推送 存儲庫的完整提交。