CLI tool hỗ trợ gitflow chuẩn cho team nhiều service - Hỗ trợ GitLab và GitHub
npm install infall-gitflowbash
npm install -g infall-gitflow
`
Hoặc cài trong project:
`bash
npm install --save-dev infall-gitflow
`
Cấu hình
Tạo file .env với nội dung:
$3
`
GIT_TOKEN=your_gitlab_token
GIT_REPO=https://gitlab.com/api/v4/projects/your_project_id
`
$3
`
GITHUB_TOKEN=your_github_token
`
Lưu ý: Tool sẽ tự động phát hiện platform (GitLab/GitHub) dựa trên URL của remote repository. Nếu không thể phát hiện tự động, tool sẽ dựa vào các biến môi trường đã cấu hình.
Sử dụng
$3
- Tạo nhánh feature:
`bash
gf feature ten-chuc-nang
# => tạo nhánh feature/ten-chuc-nang từ dev, tự checkout và push
`
- Tạo nhánh bugfix:
`bash
gf bugfix ten-bug
# => tạo nhánh bugfix/ten-bug từ dev, tự checkout và push
`
- Tạo nhánh release:
`bash
gf release ten-release
# => tạo nhánh release/ten-release từ dev, tự checkout và push
`
- Tạo nhánh hotfix (từ master hoặc nhánh master chỉ định):
`bash
gf hotfix ten-hotfix
# => tạo nhánh hotfix/ten-hotfix từ master
gf hotfix ten-hotfix --from core-master
# => tạo nhánh hotfix/ten-hotfix từ core-master
`
$3
Để tránh merge commit pollution và giữ git graph sạch:
`bash
gf setup-rebase
=> Cấu hình git pull.rebase = true (global)
=> Từ giờ git pull sẽ tự động dùng rebase
`
Lưu ý quan trọng: Tool đã tự động dùng rebase trong các lệnh của nó, nhưng lệnh này giúp cấu hình cho tất cả git pull commands khác của bạn.
$3
`bash
gf verify
=> Hiển thị version, rebase config, và trạng thái hiện tại
`
$3
- Tự động nhận diện nhánh hiện tại nếu không truyền branch:
- Nếu đang ở nhánh hotfix/* → merge request/pull request vào master
- Nếu đang ở nhánh *-master hoặc master → merge request/pull request vào dev
- Nếu đang ở nhánh *-uat → merge trực tiếp vào dev
- Các trường hợp khác → merge request/pull request vào dev
- Ví dụ:
`bash
# Đang ở nhánh core-master
gf finish
# => tạo merge request/pull request từ core-master vào dev
# Đang ở nhánh hotfix/abc
gf finish
# => tạo merge request/pull request từ hotfix/abc vào master
# Đang ở nhánh core-uat
gf finish
# => merge trực tiếp core-uat vào dev
# Truyền branch thủ công vẫn được:
gf finish core-master -m "Release core v1.2.3"
gf finish core-uat -m "Deploy lên UAT"
`
Tính năng mới
$3
- Rebase thay vì Merge khi pull: Tự động dùng git pull --rebase để tránh merge commit pollution
- Git graph sạch hơn: Không còn spam "Merge branch 'dev' of..." trong lịch sử
- Lệnh setup: gf setup-rebase` để cấu hình global rebase cho toàn bộ git commands