0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Hướng Dẫn Chuẩn Hóa Chính Sách Commit Message cho Nhóm Phát Triển của Bạn

Đăng vào 1 tháng trước

• 3 phút đọc

Chủ đề:

commit

Chuẩn Hóa Chính Sách Commit Message

Commit message là một phần quan trọng trong quá trình phát triển phần mềm, giúp duy trì lịch sử thay đổi của dự án trở nên rõ ràng và dễ theo dõi. Việc áp dụng quy tắc Conventional Commits không chỉ mang lại lợi ích cho con người mà còn cho máy móc, qua đó giúp tự động hóa các quy trình như phát hành phiên bản.

Tại Sao Nên Sử Dụng Conventional Commits?

Việc sử dụng một chuẩn mực như Conventional Commits giúp:

  • Cải thiện tính rõ ràng: Những người khác trong nhóm có thể nhanh chóng hiểu được ý nghĩa của các thay đổi.
  • Hỗ trợ tự động hóa: Giúp các công cụ tự động hóa dễ dàng xử lý commit log và tạo ra các bản phát hành.

Hướng Dẫn Thiết Lập commit-msg Hook Trên Máy Tính

Dưới đây là hướng dẫn chi tiết để bạn có thể chuẩn hóa commit message cho nhóm của mình.

Bước 1: Tạo Thư Mục Dành Cho Git Hooks

Chạy lệnh sau trong terminal để tạo thư mục cho Git hooks:

Copy
mkdir -p ~/.git-templates/hooks

Bước 2: Cấu Hình Git Để Sử Dụng Thư Mục Này

Tiếp theo, bạn cần cấu hình Git để sử dụng thư mục vừa tạo:

Copy
git config --global core.hooksPath ~/.git-templates/hooks

Bước 3: Tạo File commit-msg Hook

Tạo một file có tên commit-msg trong thư mục trên với nội dung sau:

Copy
#!/usr/bin/env bash

commit_msg_file=$1
commit_msg=$(cat "$commit_msg_file")

conventional_regex='^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(!)?(\([a-z0-9][a-z0-9\-]*[a-z0-9]\))?: [^\s].*[^\s]$'

if ! [[ $commit_msg =~ $conventional_regex ]]; then
  echo "-------------------------------------------------------------------------"
  echo " ❌ The commit message does not follow Conventional Commits specification"
  echo "     (see https://www.conventionalcommits.org/en/v1.0.0):"
  echo " Format: type(scope)?(!)?: subject"
  echo " Allowed types:"
  echo "     feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert"
  echo " Example: feat(api)!: Add validation to the create-user endpoint"
  echo "-------------------------------------------------------------------------"
  exit 1
fi

Bạn có thể tùy chỉnh thông báo lỗi và regex nếu cần thiết, để phù hợp với quy trình làm việc của nhóm bạn.

Ví Dụ Về Commit Message Hợp Lệ

Dưới đây là một số ví dụ về commit message hợp lệ:

  • feat: Thêm luồng onboarding cho người dùng mới
  • fix(api): Sửa lỗi xử lý cho phản hồi 404
  • refactor(ui)!: Cải tiến điều hướng để tốt hơn về khả năng tiếp cận
  • docs: Cập nhật README để phản ánh các thay đổi API

Bước 4: Biến Hook Thành Tệp Thực Thi

Để đảm bảo file commit-msg có thể thực thi, chạy lệnh sau:

Copy
chmod +x ~/.git-templates/hooks/commit-msg

Bước 5: Áp Dụng Cho Kho Lưu Trữ Hiện Có

Các kho lưu trữ hiện có sẽ không tự động áp dụng hooks mới nếu thư mục .git/hooks đã tồn tại. Trong trường hợp này, bạn có thể thực hiện một trong hai cách sau:

  1. Xóa hoặc đổi tên thư mục hooks trong repo để Git sử dụng hooks toàn cục.
  2. Sao chép hoặc tạo symlink từ hook commit-msg vào thư mục hooks của từng repo theo cách thủ công.

Kết Luận

Sau khi thiết lập hoàn tất, mọi commit message không đúng với quy tắc sẽ bị từ chối. Điều này đảm bảo rằng tất cả commits trong kho lưu trữ cục bộ của bạn tuân thủ chuẩn Conventional Commits, mang lại một quy trình làm việc hiệu quả và rõ ràng hơn cho cả nhóm phát triển. Hy vọng bài viết này sẽ hữu ích cho bạn và nhóm của bạn trong việc nâng cao chất lượng commit message!

Tài Liệu Tham Khảo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào