Git Flow
Sử dụng Git giúp quản lý các phiên bản nâng cấp của web ổn định và có thể khôi phục, xem các thay đổi trước khi phát hành.
Cấu hình khi cài đặt
git config --global user.name "Ten + ho"
git config --global user.email "email-cua-ban@codetot.com"
git config --global core.autocrlf false
Commit
Commit phải sử dụng tiếng Anh
Cấu trúc
Issue ID - Verb + something + where
Ví dụ:
CDD-12 Fix text alignment in Hero homepage
TTD-35 Update text color in About page
Lưu ý:
- Commit có ticket ID ở đầu, vd CD-12 Fix bug in hero homepage (nếu có, để track việc đã giao ở đâu).
- Không chia động từ, để nguyên dạng, ví dụ Fix, Update, Setup, Remove, Add
- Dùng tính từ bổ ngữ danh từ, ví dụ
text color
(chủ thể là color) kháccolor text
(chủ thể là text)
Commit Files
- Commit không chứa các file compiled (vd
.min.css
,.min.js
) do công cụ tạo ra. Trừ trường hợp commit update cả plugin hoặc theme gốc. - Commit không chứa các file config của localhost (vd
config.yml
,wp-config.php
). - Commit không chứa các file setting của riêng IDE, ví dụ
.idea/
.
Commit cần chia nhỏ
Chia nhỏ các commit sau để hạn chế conflict giữa các developer.
Quy ước chung là có những commit dạng này:
- Commit chứa thay đổi của ACF (trong thư mục
/acf-json/
). - Commit chứa thay đổi của CPT UI (trong thư mục
/cpt-json/
) - Commit markup (chứa file .php)
- Commit style (chứa file .css)
Merge Request/Pull Request (MR/PR)
Trên các hệ thống như GitLab, GitHub, BitBucket đều có tính năng cho phép tạo Merge Request/Pull Request để đánh giá code trước khi cho lên các nhánh chính.
Các developer nên tạo ngay khi có commit đầu tiên. Đặt tên MR/PR với chữ WIP:
ở đầu, ví dụ WIP: Update Hero Homepage
.
Trong trường hợp làm xong, cần gỡ bỏ WIP:
tag ở đầu đi và thông báo việc hoàn thành cho người quản lý dự án.
Nếu có các comment về code, developer sắp xếp thời gian xử lý sớm. Khi đẩy code lên, thông thường các comment sẽ được báo là đã xong (resolved).
Nhánh chính phụ và quy tắc đặt tên
Các nhánh chính, chỉ cho code vào sau khi đã approve và duyệt QA
master
: nhánh chính, chứa code trên môi trường live/productiondevelop
: nhánh chính, chứa code trên môi trường dev
Các nhánh phụ, làm các nhiệm vụ và thường checkout gốc theo quy ước để làm ra.
Checkout từ develop
feature/<feature-name>
: làm tính năng hoặc page template mớibugfix/<dev-name>/<mm-dd-yyyy>
: nếu tính năng đã được cho lên nhánhdevelop
, dev làm tiếp bugfix.
Checkout từ master
hotfix/<mm-dd-yyyy>
: nếu trên live có lỗi cần fix gấp