Nếu bạn đang sử dụng DVCS, bạn nên cam kết rất thường xuyên. Tôi cam kết mỗi khi mã của tôi ở trạng thái ổn định, không liên quan đến các dòng mã. Bạn muốn có một cây nhiều cam kết nhỏ, nguyên tử giúp bạn dễ dàng nhìn thấy những gì bạn đã làm trong mỗi. Nếu bạn đang cố gắng theo dõi hồi quy mà bạn đã tìm thấy khi kiểm tra, điều này giúp thực hiện tìm kiếm nhị phân dễ dàng hơn và theo dõi cam kết chính xác, bởi vì bạn sẽ có ít thay đổi hơn cho mỗi lần xác nhận. Tôi chỉ cam kết khi mã của tôi biên dịch - ý tưởng của tôi về "nguyên tử" là nó biên dịch, vượt qua các bài kiểm tra đơn vị hồi quy và vượt qua bài kiểm tra tích hợp nhanh. Đôi khi một bài kiểm tra đơn vị được bao gồm, và đôi khi không.
Khi bạn đẩy, bạn nên đẩy toàn bộ tính năng. Phần còn lại của thế giới không muốn thấy "cam kết bỏ lỡ trong tệp này" của bạn mỗi ngày. Git cung cấp rebase
, cho phép bạn dọn sạch cây cam kết của mình bằng cách ép nhiều xác nhận lại với nhau. Cộng đồng dường như không chắc chắn về bao nhiêu lịch sử bạn nên cam kết. Tôi muốn nói rằng bạn nên kết hợp các cam kết không hiển thị bất kỳ lịch sử nào, như "tệp bị bỏ lỡ" hoặc "hồi quy câm". Bạn muốn trình bày một lịch sử sạch nhất có thể để mọi người có thể dễ dàng thấy những gì bạn đã làm.
Trong một hệ thống kiểm soát phiên bản tập trung, bạn cần phải cam kết nhiều hơn nữa nếu bạn muốn giữ một lịch sử tốt. Đề nghị của tôi là bạn làm việc trên các tính năng nhỏ hơn và hoàn thành chúng nhiều nhất có thể trước khi bạn cam kết. Khái niệm "nguyên tử" của bạn ở đây phải là một tính năng hoạt động và được thử nghiệm. Bạn không muốn cam kết bất cứ điều gì phá vỡ không gian làm việc của nhà phát triển khác, bởi vì họ sẽ cập nhật thường xuyên và khó hơn rất nhiều khi làm việc trên các tính năng độc lập chồng chéo. Bạn sẽ cam kết ít hơn, nhưng những cam kết đó thường sẽ nhiều thịt hơn DVCS trung bình của bạn.
Bạn có thể thấy rằng tỷ lệ dòng mã với số lần xác nhận phụ thuộc vào mức độ lớn của các tính năng của bạn và quy trình công việc bạn sử dụng. Quy trình làm việc của bạn sẽ khác nhau tùy thuộc vào hệ thống kiểm soát phiên bản bạn sử dụng, do đó, bạn thường không thể dự đoán được cam kết của mình sẽ như thế nào. Mỗi tổ chức có tiêu chuẩn riêng của họ và nên tự xác định quy trình làm việc của họ là lý tưởng nhất.