Tin Tức

Tổng hợp các bài viết, kinh nghiệm, chia sẻ kiến thức hữu ích về việc làm onsite, nhân sự onsite.

✔ Commit Message Tốt và ❌ Commit Message Tệ

folder Kiến thức công nghệ
today 22/07/2024 18:12
Trong thế giới tuyệt vời của phát triển phần mềm hoặc web, kiểm soát phiên bản là điều bắt buộc phải có đối với mỗi nhà phát triển khi làm việc trên một dự án cùng với các nhà phát triển khác. Một trong những hệ thống kiểm soát phiên bản được sử dụng nhiều nhất là Git, giúp các nhà phát triển theo dõi các thay đổi, quay lại các trạng thái trước đó một cách hiệu quả và làm việc nhóm trên các dự án của mình. Tuy nhiên, Git chỉ thực sự hiệu quả khi các commit được quản lý đúng cách. Trong bài viết này, chúng tôi sẽ đi qua những commit tốt và xấu, giải thích cho bạn những thực hành tốt nhất để có một lịch sử commit rõ ràng, thông tin và hữu ích.

Commit là gì?

Trong Git, một commit đề cập đến trạng thái của mã nguồn của bạn tại một thời điểm cụ thể. Commits đi kèm với metadata (tác giả, thời gian, thông điệp commit, v.v.). Commit được sử dụng để lưu lại quá trình phát triển, ghi nhận các thay đổi và kết hợp các phần đã phát triển với công việc của người khác.

Đặc điểm của một Commit Tốt

Nguyên tử và tập trung: Một commit nên nguyên tử - nó phải đại diện cho một và chỉ một thay đổi logic. Không trộn lẫn nhiều thay đổi độc lập trong một commit.

Ví dụ:

# Good commit
git commit -m "Add user authentication"
# Bad commit
git commit -m "Add user authentication and update UI styles"

Message Commit Mô tả: Một message commit mô tả rõ ràng những gì commit thực hiện và lý do thay đổi được thực hiện. Nó nên cung cấp đủ ngữ cảnh để người khác (và cả bạn trong tương lai) hiểu được thay đổi mà không cần đọc mã nguồn.

Ví dụ:

# Good commit message
git commit -m "Fix Correct null pointer exception in user login"
# Bad commit message
git commit -m "Fix bug"

Tuân theo Hướng dẫn Commit Thông thường: Bạn có thể sử dụng các hướng dẫn commit chuẩn để giữ lịch sử git của mình sạch sẽ, nhất quán và dễ đọc. Thông thường, các hướng dẫn này được diễn giải dưới dạng loại (feat, fix, chore, refactor, docs) và tóm tắt ngắn gọn, cộng thêm đôi khi là một lời giải thích dài hoặc tham chiếu đến các vấn đề liên quan khác.

Ví dụ:

# Good commit message following conventional guidelines
git commit -m "feat(auth): add JWT-based authentication"
git commit -m "fix(login): resolve race condition in login flow"

Kiểm tra và Xác minh: Đảm bảo rằng các thay đổi trong commit của bạn đã được kiểm tra và chạy đúng cách. Mã bị lỗi/chưa được kiểm tra có thể làm gián đoạn luồng công việc và ảnh hưởng đến các thành viên khác.

Phạm vi Hợp lý: Xác định phạm vi commit của bạn một cách hợp lý. Ví dụ, nếu bạn đang làm việc trên một tính năng cụ thể hoặc sửa lỗi, hãy đảm bảo rằng tất cả các thay đổi liên quan đến nhiệm vụ đó được bao gồm trong một commit duy nhất. Tránh các thay đổi một phần có thể khiến mã nguồn ở trạng thái không nhất quán.

Ví dụ:

# Good commit with proper scope
git commit -m "refactor(auth): split auth logic into separate module"
# Bad commit with mixed scope
git commit -m "refactor and minor fixes"

Đặc điểm của một Commit Xấu

Quá lớn và Không tập trung: Một commit với quá nhiều thay đổi là một commit xấu. Nó làm cho việc hiểu những gì commit thực hiện trở nên khó khăn. Các commit lớn, không tập trung rất khó để xem xét và gỡ lỗi.

Ví dụ:

# Bad commit
git commit -m "Update project"

Thông điệp Mơ hồ hoặc Gây Hiểu lầm: Các thông điệp commit mơ hồ hoặc gây hiểu lầm không cung cấp thông tin hữu ích về các thay đổi. Sự thiếu chi tiết này có thể gây nhầm lẫn và làm khó khăn trong việc theo dõi lịch sử thay đổi.

Ví dụ:

# Bad commit message
git commit -m "Stuff"

Thay đổi Không Liên quan: Kết hợp các thay đổi không liên quan vào một commit duy nhất làm cho việc tách biệt các thay đổi cụ thể trở nên khó khăn, có thể gây ra lỗi và làm phức tạp quá trình xem xét.

Ví dụ:

# Bad commit
git commit -m "Update readme and fix login issue"

Mã nguồn chưa hoàn chỉnh hoặc chưa được kiểm tra: Committing mã nguồn chưa hoàn chỉnh hoặc chưa được kiểm tra có thể làm gián đoạn quy trình làm việc, gây vấn đề cho các thành viên trong nhóm khác và có thể làm hỏng bản build.

Thiếu Ngữ Cảnh: Một commit kém thường thiếu ngữ cảnh, làm cho việc hiểu lý do của thay đổi trở nên khó khăn. Điều này có thể dẫn đến sự nhầm lẫn và khó khăn khi xem xét mã nguồn trong tương lai.

Thực Hành Tốt Nhất cho Commit Tốt

  1. Commit Thường Xuyên, Nhưng Không Quá Thường Xuyên: Cố gắng đạt được sự cân bằng giữa việc commit quá thường xuyên và không đủ thường xuyên. Mỗi commit nên đại diện cho một thay đổi có ý nghĩa. Không bao giờ đẩy các thay đổi không liên quan trong một commit duy nhất.

  2. Viết Thông Điệp Rõ Ràng và Mô Tả: Các thông điệp commit của bạn nên giải thích những gì commit thực hiện và lý do bạn thực hiện thay đổi đó.

  3. Sử Dụng Branch Hiệu Quả: Sử dụng các nhánh tính năng cho các tính năng mới, sửa lỗi và thử nghiệm. Tạo Pull Request cho những nhánh đó và người quản lý dự án hoặc quản trị viên sẽ xem xét mã của bạn và gộp chúng vào nhánh chính.

  4. Xem Xét và Gộp Các Commit: Nếu bạn là chủ dự án, trưởng nhóm, quản trị viên hoặc người xem xét mã, trước khi gộp một nhánh, hãy xem xét và gộp các commit nhỏ hoặc sửa lỗi thành các đơn vị logic. Thực hành này giữ cho lịch sử commit sạch sẽ và dễ theo dõi.

  5. Tự Động Kiểm Tra: Sử dụng các công cụ tích hợp liên tục để tự động kiểm tra mã của bạn với mỗi commit. Điều này đảm bảo rằng các thay đổi của bạn đã được xác minh và giảm rủi ro giới thiệu lỗi.

  6. Sử Dụng Husky: Sử dụng thư viện như Husky có thể cải thiện kỹ năng git của bạn. Nó không cho phép commit nếu bạn vi phạm các quy tắc được cấu hình trong Husky.

Kết Luận

Các commit tốt rất quan trọng để duy trì một lịch sử dự án sạch sẽ và dễ hiểu trong Git. Bằng cách tuân theo các thực hành tốt nhất như giữ các commit nguyên tử, viết thông điệp mô tả, và đảm bảo rằng các thay đổi đã được kiểm tra, bạn có thể cải thiện sự cộng tác và làm cho dự án của bạn trở nên dễ bảo trì hơn. Một lịch sử commit được quản lý tốt là một tài nguyên quý giá cho bạn trong tương lai, cho đội ngũ của bạn hoặc cho các cộng tác viên mới.

Bằng cách tuân theo các hướng dẫn trên, bạn sẽ giúp tất cả những người tham gia dự án dễ hiểu, xem xét và xây dựng dựa trên công việc của bạn. Chúc bạn commit vui vẻ!