12

更新フックは、コミットの一部を拒否し、他の部分を許可できます。

receive_pack.c の update() はループで実行され、コミット中に update フックが複数回呼び出される可能性があります。更新フックが呼び出されるたびに、失敗が返される可能性があり、一見、一部の参照が更新され、拒否された場合は更新されない可能性があります。

コミットの一部が成功し、一部が失敗することを可能にする更新フックの Git の機能は、Git のコミットがアトミックではないことを意味しますか?

または、ここで何が欠けていますか?ありがとう。

4

1 に答える 1

10

はい、コミットはアトミックです。コミットの一部を拒否することはできません。

複数のブランチが同時にプッシュされている場合、更新フックは、(コミットではなく) 1 回のプッシュ中に複数回呼び出される場合があります。これにより、他のブランチへの更新を拒否しながら、一部のブランチへの更新を受け入れることができますが、受け入れられた各更新は、引き続きプッシュ リポジトリからの完全なコミットを指します。

于 2013-04-03T21:38:44.700 に答える