Git Branch Model
Mở đầu
Tình cờ đọc được một bài về git flow khá dễ hiểu trên https://qiita.com với cách triển khai đi từ trải nghiệm của một beginner đến khi rút ra được một git flow có lợi nhất project . Bài này sẽ liệt kê một số case không tốt khi sử dụng git và sau cùng sẽ giới thiệu branch model để giải quyết những vấn đế đó. Hy vọng sẽ có ích cho các bạn khi mới bắt đầu áp dụng git flow
Case 1: một nhánh master
Lúc mới bắt đầu xài Git tôi đã dùng cách này
[work flow process] 1. Commit mọi thứ lên mastermaster:
Toàn bộ mọi thứ mà bạn phát triển sẽ được đẩy lên branch này
Case2: master và develop branch
Từ case 1 tiến thêm nửa bước
[work flow process] 1. Lúc mới bắt đầu phát triển thì tách từ master ra để tạo branch develop2. Trong lúc đang phát triển thì commit mọi thứ lên develop
3. Lúc release thì merge develop vào master
master: Branch để quản lý source code của thời điểm sau release
develop(tạo từ master): branch dùng để phát triển
Case3: master&develop&feature branch
[work flow process] 1. Tạo branch develop từ branch master2. Từ branch develop, tạo branch feature với mỗi chức năng để implement
3. Chức năng mà đã implement xong trên branch feature thì sẽ merge vào branch develop
4. Thời điểm release thì merge develop vào master
master: branch quản lý source code ở thời điểm release
develop (tách ra từ master): Branch chính để phát triển
feature (tách ra từ develop): Branch để implement cho từng chức năng (feature/◯◯, feature/xx…)
・Không có branch cho trường hợp phát sinh bug nghiệm trọng sau khi release
Branch model để giải quyết các vấn đề trên
Tôi sẽ giới thiệu branch design mà có thể ứng dụng để giải quyết những vấn đề trên
[work flow process] 1. Tạo branch develop từ branch master2. Tạo branch feature cho mỗi chứng năng cần implement từ branch develop
3. Chức năng đã hoàn thành trên branch feature sẽ merge vào develop
4. Ở thời điểm release sẽ tạo branch release từ develop
5. Ở thời điểm kết thúc release sẽ merge từ release vào develop và master [flow đối ứng lỗi sau release] 1. Tạo branch hotfix từ branch master
2. Trên branch hotfix tại thời điểm đối ứng bug xong thì merge vào branch develop, master
master: Branch quản lý source code sau khi release
develop (Tạo từ master): Branch để phát triển chính
feature (tách từ develop): Branch cho mỗi chức năng cần implement (feature/◯◯, feature/xx,…)
release (tách từ develop): Branch để điều chỉnh nhỏ lúc release sau khi đã hoàn thành công việc phát triển trên develop
hotfix ( tách ra từ master ): Branch cho việc đối ứng gấp trường hợp có bug nghiêm trọng trên sản phảm đã release (bug crash chẳng hạn)
Tham Khảo
A successful Git branching model
http://nvie.com/posts/a-successful-git-branching-model/
https://qiita.com/okuderap/items/0b57830d2f56d1d51692