Một dự án thực tế sẽ có git follow theo sơ đồ dưới đây.
Các tính năng sẽ được phát triển trên nhánh develop. Mỗi một tính năng sẽ được tách ra một nhánh feature, khi làm xong các feature sẽ được megre vào develop. Test và fixed bug xong ở develop sẽ merge vào nhánh release hoặc staging, khách hàng test lại ok thì megre vào master, đánh tag release từ master và deploy code lên môi trường production. Nếu có bug production thì tách hotfix từ master, fixed xong bug sẽ merge vào master, đánh tag release production sau đó merge lại vào develop.
git log --oneline
git checkout feature/merge
git merge master
Sử dụng git rebase: Tất cả các lịch sử commit của nhánh feature sẽ được merge và sắp xếp lại đứng phía trước nhánh master, giúp quản lý lịch sử commit theo cá nhân tốt hơn, thường dùng cho dự án lớn nhiều người commit.
git checkout feature/rebase
git rebase master
Sử dụng git merge squash: Tất cả các lịch sử commit của nhánh feature sẽ được gộp thành một commit khi merge với master, các dự án hiện nay ít dùng cách này.
git checkout feature/merge-squash
git merge --squash master
Chú ý: Khi merge code với nhánh master, chúng ta luôn phải pull code mới nhất về trước khi merge.