Posts related to technology category
Sổ Tay Hướng Dẫn Git Flow
- 26 Feb, 2026
Khi mình tìm workflow để hiểu hơn về git thì thấy được bài viết trên Github đọc thấy khá hay vì rõ ràng và rành mạch luồng cho việc phát triển sản phẩm, dịnh danh, truy vết và có quy tắc, nếu hỏi có hiểu gì không thì mình chỉ hiểu ở mức luồng chạy còn để command thực tế là không vì bản thân chỉ mới đụng vào Github cách đây tầm 3 tháng. Coi như học dần vì có nhiều thứ khi triển khai thấy khá thú vị, bản thân không phải developer nên chỉ cần hiểu luồng, cấu trúc còn lại có AI lo. :D Cụ thể bên dưới là tài liệu sổ tay viết lại cho dự án thực tế chính là trang này (tất cả các tính năng trong việc nghiên cứu tính năng, kiểm thử, fix bugs, release sẽ theo cấu trúc bên dưới). Bản thân vẫn phải cần AI hỗ trợ khi kẹt nhưng tổng thể là hiểu khung cấu trúc và những việc cần làm như lên ý tưởng, demo features, develop, release và hotfixes thì nên vận hành ra sao để khi dự án lớn hơn sẽ không bị chồng lấn các luồng với nhau. Dự án sử dụng 2 nhánh cốt lõi và các nhánh tạm thời: - 🟢 main (Production): Vùng cấm. Luôn chứa phiên bản ổn định nhất đang chạy trên máy chủ thật. Tuyệt đối không thao tác trực tiếp. - 🔵 develop(Staging/Integration): Nhánh xương sống để gộp code. Nơi tập hợp mọi tính năng mới trước khi phát hành. Không code trực tiếp trên nhánh này. - 🟡 feature/ten-tinh-nang: Nhánh nháp để phát triển tính năng. Bắt buộc tạo ra từ nhánh develop. - 🔴 hotfix/ten-loi: Nhánh sửa lỗi khẩn cấp (bugs trên production). Bắt buộc tạo ra từ nhánh main. --- Hệ thống đã được cấy "cảnh sát ngầm" (Husky) dưới máy tính của bạn: 1. Khóa Push Chống Phá Hoại (pre-push): Chặn đứng mọi nỗ lực gõ lệnh git push hoặc ấn "Publish Branch" nếu bạn đang đứng ở main hoặc develop. 2. Kiểm Thử Trước Khi Lưu (pre-commit): - Nếu bạn sửa file cấu hình hoặc Code (.js, .jsx, .astro, .css): Husky ép chạy npm run build ngầm. Code lỗi sẽ bị cấm Commit. - Nếu bạn viết bài Blog, đổi ảnh (.md, .json, ảnh): Husky sẽ nhận diện thông minh, tự động mở khoá cho Commit trơn tru mà không bắt Build tốn thời gian. --- Khi được giao việc làm một tính năng mới (ví dụ: Trang Login), hãy làm theo đúng trình tự sau: Luôn luôn lấy code mới nhất trước khi làm việc: bash git checkout develop git pull origin develop bash git checkout -b feature/login-page - Bắt đầu bằng: feat: (tính năng mới), fix: (sửa lỗi), chore: (cấu hình, linh tinh), docs: (tài liệu). - Ví dụ: feat: xay dung giao dien dang nhap bash git push -u origin feature/login-page 1. Lên Github, sẽ thấy lời nhắc màu xanh lá. Bấm "Compare & pull request". 2. Cực kỳ quan trọng: Chọn ô base (nhánh đích) là develop. (Đừng để nhầm là main). 3. Bấm Create pull request Bấm Merge pull request. 4. Xong việc! Trở về máy tính làm lại Bước 1 để lấy thành quả về máy! --- Không muốn xài chuột tạo nhánh, gõ commit, ấn push lằng nhằng? Hãy cài phím tắt siêu tốc này (Chỉ cần chạy 1 lần duy nhất trong Terminal/Git Bash): bash git config --global alias.save '!f() { git checkout -b "$1" && git add . && git commit -m "$2" && git push -u origin "$1"; }; f' Cách dùng vĩnh viễn: Chỉ đúng 1 lệnh! Khi code xong, mở Terminal gõ: bash git save feature/ten-nhanh "feat: ghi chu file" (Hệ thống sẽ tự rẽ nhánh, tự gói code, tự build kiểm thử, tự commit và tự đẩy lên web trong chớp mắt!) --- Dự án đã tích hợp công cụ biến đổi version thần thánh standard-version. Khi nào dùng? Khi bạn đã gom được rất nhiều feature/ vào develop và muốn chốt sổ một phiên bản (ví dụ từ nâng v0.1.0 lên v0.2.0). Cách chạy: Đứng ở nhánh develop (sau khi đã Merge hết các PR), gõ: bash npm run release Hệ thống sẽ: 1. Đọc lịch sử các chữ feat:, fix: 2. Tự nâng Version phù hợp. 3. Tự sinh file CHANGELOG.md đẹp mắt. 4. Tự đánh git tag (ví dụ v0.2.0). Sau đó, bạn chỉ việc gõ: bash git push --follow-tags origin develop
read more