Является ли git commit атомарным?

крюк обновления может отклонять части фиксации и разрешать другие.

update () в receive_pack.c работает в цикле, который затем вызывает крючок обновления, возможно, несколько раз во время фиксации. Каждый раз, когда вызывается крюк обновления, он может возвращать сбой, по-видимому, позволяя некоторым ссылкам обновляться, а некоторым не обновляться при отклонении.

является ли функция git крючка обновления, позволяющая, возможно, части фиксации, чтобы добиться успеха, а некоторые неудачи означают, что фиксация Git не атомный?

или чего мне здесь не хватает? Спасибо.

1 ответов


да коммиты являются атомарными. Невозможно отклонить часть фиксации.

крюк обновления может вызываться несколько раз в течение одного пуш (не commit), если одновременно толкаются несколько ветвей. Это позволяет принятие обновлений для некоторых ветвей при отклонении обновлений для других, но каждый принял обновление по-прежнему будет указывать на полную фиксацию нажатия хранилище.