Git не повредит и не «наполовину обновит» ваш Git-репозиторий только из-за сбоя или медленного соединения. Это очень надежно, и я все еще чувствую себя комфортно, используя его даже в самых тяжелых условиях.
Фактическая функция push
реализуется по существу в два этапа (в случае ускоренного перемещения вперед, что всегда должно быть в случае):
- загрузка всех объектов, доступных из текущей главы филиала и недоступных из удаленной головки филиала
- обновить заголовок удаленной ветви, чтобы он указывал на последний коммит
Первая операция идемпотентна, поэтому, если она по какой-либо причине провалится, вы можете просто запустить ее снова, чтобы получить все в курсе. Вторая операция является атомарной и происходит только после загрузки всех новых объектов.