Toàn vẹn dữ liệu.
Tôi tôn trọng không đồng ý với các câu trả lời hiện tại. Băm không cần thiết cho DVCS, xem cách Bazaar . Bạn có thể làm tốt với bất kỳ loại định danh duy nhất toàn cầu nào khác. Các giá trị băm là một biện pháp để đảm bảo tính toàn vẹn của dữ liệu: Chúng đại diện cho một bản tóm tắt thông tin có trong đối tượng (cam kết, cây, ...) được gọi bằng hàm băm. Việc thay đổi nội dung mà không thay đổi hàm băm (nghĩa là một cuộc tấn công tiền đề hoặc tấn công va chạm ) được cho là khó khăn, mặc dù không phải là không thể. (Nếu bạn thực sự thích nó, hãy xem bài báo năm 2011 của Marc Stevens ).
Do đó, việc tham chiếu đến các đối tượng bằng hàm băm SHA của chúng cho phép kiểm tra xem nội dung có bị giả mạo hay không. Và, do chúng (gần như) được đảm bảo là duy nhất, chúng cũng có thể được sử dụng làm định danh sửa đổi - một cách thuận tiện.
Xem Chương 9 của sách Git để biết thêm chi tiết.