Câu trả lời:
Các công cụ kiểm soát phiên bản đủ mạnh để cho phép người xem xem các tệp nào đã được sửa đổi và phương pháp nào đã được thêm vào. Điều đó có nghĩa là nói chung, các thông điệp tường trình trùng lặp rõ ràng những gì đã tồn tại đang gây ô nhiễm nhật ký.
Bạn đã thêm somefunc
phương thức để thực hiện một yêu cầu, nghĩa là:
Điều này có nghĩa là các thông điệp tường trình của bạn phải giải thích các tính năng / lỗi bị ảnh hưởng hoặc mục đích của việc tái cấu trúc là gì.
Đừng quên thêm VÉ / SỐ ISSUE .
Nếu bạn có bất kỳ tính năng hoặc hệ thống theo dõi vấn đề nào với vé # hoặc vấn đề # , hãy chắc chắn đặt ID # đó vào cam kết. Điều đó sẽ giúp bất cứ ai muốn biết thêm về tính năng hoặc vấn đề mà bạn đang làm việc.
Trong dự án cuối cùng của tôi, có một macro được phát triển để đảm bảo rằng 7 chữ số đầu tiên của nhận xét là số vấn đề hợp lệ từ nhiệm vụ rõ ràng (hệ thống theo dõi vấn đề / tính năng của chúng tôi).
Tôi thực hiện kiểu đó khi tôi cam kết, ví dụ như sửa lỗi cho một lỗi yêu cầu thay đổi thành nhiều tệp. Điều này làm cho nó dễ dàng hơn một chút để nói những gì thực sự thay đổi mà không cần xem các tệp riêng lẻ trong tập thay đổi.
Đối với thay đổi tập tin duy nhất, điều này là không cần thiết.
Dòng đầu tiên luôn là một mô tả cấp cao về bộ thay đổi, giống như một liên kết đến lỗi hoặc câu chuyện người dùng.
Nếu đó là thông tin liên quan trong tường thuật của thông điệp cam kết, thì có, bao gồm nó. Nếu bit thông tin duy nhất là tên tệp, thì không.
Ví dụ: điều này có ý nghĩa: "Đã chuyển hàm build_foo () từ fooutil.c sang foobase.c, vì hầu hết các chương trình muốn sử dụng build_foo () đều đã bao gồm foobase.c"
Cái này không: "Đã cập nhật build_foo () trong fooutil.c để lấy tham số thanh."
Tôi muốn thêm một góc nhìn khác ở đây.
Câu trả lời của tôi là Có hoặc Không. Nhưng nói chung tôi sẽ nói Có.
Kiểm soát phiên bản thực sự đủ mạnh để biết tập tin nào đang được cập nhật. Nhưng, khi chúng ta làm
$ git log
Chúng tôi chỉ thấy thông điệp cam kết. Đó là những gì hầu hết mọi người làm.
Bằng cách nhìn vào nhật ký chính nó. Nó thêm bối cảnh bổ sung cho nó. Ví dụ:
readme.md: Fix typo detected by language tool
Tốt hơn
Fix typo detected by language tool
Tuy nhiên, nếu thay đổi sinh ra nhiều tệp, thì ít nhất hãy đề cập đến thành phần đang được chỉnh sửa.
API: Fix reset password not sent email to user
Bằng cách đọc nó, chúng tôi biết rằng lỗi đang được sửa là ở thành phần API và có lẽ nó nằm trong thư mục API tại cơ sở mã.
Tuy nhiên chúng ta có thể làm
$ git show COMMIT_ID --name-only
nhưng nó thêm nhiều bước chỉ để có được các tập tin.
Tôi nghĩ rằng câu hỏi thực sự ở đây là giới hạn phạm vi của bạn như thế nào? Nếu bạn chờ đợi để thực hiện một loạt các thay đổi không liên quan với nhau trong một cam kết, thì bạn có thể cảm thấy cần phải chỉ định các tệp đã được thay đổi cho mục đích gì.
Tuy nhiên, nếu bạn chỉ đơn giản thực hiện các cam kết hẹp hơn thường xuyên hơn, thì một cam kết duy nhất sẽ giải thích các tệp nào đã được sửa đổi và bạn có thể mô tả đơn giản mục đích trong thông báo là gì.
Cam kết nhiều hơn, thường xuyên hơn. Đó là cách bạn có thể tránh quá dài dòng trong tin nhắn của mình.