- vừa được xem lúc

Tổng quan về các quy trình làm việc với Git

0 0 3

Người đăng: Vũ Tuấn

Theo Viblo Asia

1. Centralized Workflow – Quy trình tập trung

Là quy trình đơn giản nhất, trong đó tất cả các lập trình viên đều push và pull từ một nhánh trung tâm duy nhất, thường là main.

Phù hợp cho:

  • Nhóm nhỏ hoặc dự án cá nhân
  • Dự án đơn giản, không có nhiều tính năng phát triển song song

Cấu trúc nhánh:

Repo
└── main └── [all commits here]

Ví dụ:

# Start working from the main branch
git checkout main
git pull origin main # Make changes
git add .
git commit -m "feat: update homepage layout" # Push directly to main
git push origin main

2. Feature Branch Workflow – Quy trình nhánh tính năng

Mỗi tính năng hoặc bản sửa lỗi sẽ được phát triển trên nhánh riêng biệt, sau đó được merge vào main hoặc develop thông qua pull request (PR).

Phù hợp cho:

  • Nhóm có quy trình review mã
  • Dự án có sử dụng các pipeline CI/CD

Cấu trúc nhánh:

main
├── feature/login-page
├── bugfix/fix-footer

Ví dụ:

git checkout -b feature/user-login
# work on feature
git commit -m "feat: add login form"
git push origin feature/user-login
# create PR to main

3. Git Flow Workflow – Quy trình Git Flow

Một quy trình có cấu trúc rõ ràng với các nhánh riêng cho phát triển (develop), phát hành (release), sửa nóng (hotfix) và tính năng (feature).

Phù hợp cho:

  • Nhóm lớn
  • Dự án có kế hoạch phát hành theo lịch trình

Cấu trúc nhánh:

main
develop
├── feature/*
├── release/*
└── hotfix/*

Ví dụ:

git checkout -b feature/user-profile develop
# complete feature, merge into develop
# prepare release: git checkout -b release/1.0.0 develop

4. GitHub Flow

Quy trình nhẹ, mọi thay đổi đều diễn ra trên nhánh tính năng và được merge vào main thông qua PR.

Phù hợp cho:

  • Ứng dụng web triển khai liên tục
  • Nhóm dùng GitHub Actions hoặc công cụ CI hiện đại

Cấu trúc nhánh:

main
├── feature/*

Ví dụ:

git checkout -b feature/payment-integration
# work and commit
git push origin feature/payment-integration
# create PR into main

5. Trunk-Based Development – Phát triển dựa trên nhánh chính

Lập trình viên làm việc trực tiếp trên nhánh main (hoặc trunk), có thể dùng nhánh phụ ngắn hạn và merge nhiều lần trong ngày.

Phù hợp cho:

  • Các hệ thống triển khai nhanh
  • Môi trường CI/CD nâng cao

Cấu trúc nhánh:

main

Ví dụ:

git checkout -b quick-fix
# fix and push fast
git merge --squash quick-fix into main

Chọn quy trình phù hợp

image.png

Mẹo bổ sung

  • Luôn sử dụng Pull Request để đảm bảo có kiểm tra mã và CI
  • Giữ nhánh tính năng ngắn hạn, gọn gàng
  • Xóa nhánh đã merge để repo sạch sẽ
  • Luôn git pull trước khi bắt đầu công việc mới

Bình luận

Bài viết tương tự

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 2 1.1k

- vừa được xem lúc

Tập hợp những câu lệnh GIT hữu dụng

Dưới đây là một vài ví dụ về các câu lệnh Git mà tôi thường dùng. git config --global user.name "John Doe". git config --global user.

0 0 76

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 2): Trigger một work flow

Events trigger. Bạn có thể cấu hình cho workflows chạy khi có một sự kiện nào đó xảy ra trên GitHub, theo một lịch có sẵn hoặc cũng có thể là một sự kiện nào đó xảy ra ngoài GitHub.

0 0 93

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 1): Một ít lý thuyết

CI/CD là gì. Về mặt khái niệm là vậy nhưng về mặt triển khai thì CI/CD là quá trình tự động thực hiện các quá trình build, test, release, deploy khi có các trigger như commit/merge code lên một branch định sẵn hoặc có thể là tự động chạy theo một lịch cố định.

0 0 135

- vừa được xem lúc

Giới thiệu về Git LFS

. Git LFS là gì . Git LFS làm điều này bằng cách thay thế các tệp lớn trong repo của bạn bằng một con trỏ nhỏ.

0 0 44

- vừa được xem lúc

Git workflow được Google và Facebook sử dụng có gì hay ho

Với developer thì Git hẳn là công cụ rất quen thuộc và không thể thiếu rồi. Thế nhưng có mấy ai thực sự hiểu được Git.

0 0 97