git fetch và git push trao đổi gì với máy chủ: want, have, và pack protocol
Push và fetch không gửi toàn bộ repo mỗi lần — chúng thương lượng để chỉ truyền object còn thiếu. Bài cuối sê-ri Git nội bộ mổ xẻ giao thức: ref advertisement, đàm phán want/have, rồi pack protocol gói phần thiếu. Đo thật bằng GIT_TRACE_PACKET — client nói want một SHA, have những SHA đã có, server chỉ gửi packfile chênh lệch. Và vì sao push đôi khi bị từ chối.