✔ 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-message-tot-va-commit-message-te

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ẻ!

Bài viết cùng chuyên mục

hatonet

Hướng dẫn cài và sử dụng vue-object-to-formdata cho dự án nuxtjs

today 11/12/2024 22:15
vue-object-to-formdata là một thư viện JavaScript được thiết kế để chuyển đổi một đối tượng JavaScript (Object) thành đối tượng FormData. Đây là một đối tượng có thể dễ dàng sử dụng trong các yêu cầu HTTP để gửi dữ liệu, đặc biệt là khi bạn cần gửi dữ liệu như là một phần của biểu mẫu (form), ví dụ: khi upload file hoặc gửi dữ liệu dưới dạng multipart/form-data.
Xem thêm arrow_right_alt
hatonet

Hướng dẫn cài đặt và sử dụng v-tooltip trong project nuxt js

today 04/12/2024 21:34
v-tooltip là một thư viện Vue.js nhẹ, dễ sử dụng, giúp tạo ra các tooltip (hộp thông báo khi người dùng di chuột qua một phần tử) trong các ứng dụng Vue. Tooltip là một yếu tố giao diện người dùng (UI) thông báo hoặc giải thích ngắn gọn về một đối tượng khi người dùng hover (di chuột) hoặc focus vào phần tử đó.
Xem thêm arrow_right_alt
hatonet

Hướng dẫn cài đặt và sử dụng thư viện Elementjs nuxtjs

today 28/11/2024 23:14
Thư viện Element UI là một bộ thư viện giao diện người dùng mạnh mẽ, cung cấp nhiều thành phần (components) tùy chỉnh sẵn, giúp bạn xây dựng giao diện ứng dụng dễ dàng và nhanh chóng. Đối với Nuxt.js , bạn có thể tích hợp và sử dụng Element UI một cách đơn giản. Dưới đây là hướng dẫn từng bước.
Xem thêm arrow_right_alt

Việc làm tại Hatonet

Actively collaborate with team leads to develop a cohesive vision for each Agent that ensures audience resonance, and successful integration with the existing cast through personality, visual aesthetics, and gameplay Lead, manage, and mentor a high performing, healthy, and collaborative concept art team Work with production to ensure your team’s timely and successful delivery of products Maintain and contribute to artifacts that inform, align, and empower teams to successfully create character concept art in the VALORANT style

  • GWS
  • Trưởng phòng IT
Onsite
vietnam_flag