Gần đây tôi đã tìm thấy ba khái niệm về quy trình làm việc trong GIT: GitFlow, GitHub Flow và GitLab Flow. Tôi đã đọc bài viết hay về nó (https://docs.gitlab.com/ee/workflow/gitlab_flow.html) nhưng tôi không hiểu Luồng GitLab rất tốt. Có lẽ vì tôi không phải là người bản xứ :)Sự khác nhau giữa GitHub Flow và GitLab Flow là gì?
Tóm tắt.
GitFlow (https://docs.gitlab.com/ee/workflow/gitdashflow.png).
Chúng tôi là chi nhánh chính là chi nhánh sản xuất. Ngoài ra chúng tôi có một chi nhánh phát triển nơi mọi nhà phát triển hợp nhất các tính năng của anh ấy. Đôi khi chúng tôi tạo chi nhánh phát hành để triển khai các tính năng của chúng tôi trong sản xuất. Nếu chúng ta có một lỗi trong nhánh phát hành, sửa nó và kéo các thay đổi vào nhánh phát triển. Nếu chúng tôi có một lỗi quan trọng trong sản xuất, tạo hotfix-chi nhánh mới, sửa lỗi và hợp nhất chi nhánh với sản xuất (master) và phát triển các chi nhánh.
Cách tiếp cận này rất tốt nếu chúng tôi hiếm khi hiển thị kết quả công việc của mình. (Có thể một thời gian mỗi 2 tuần).
Luồng GitHub (https://docs.gitlab.com/ee/workflow/github_flow.png).
Chúng tôi có chi nhánh chính là chi nhánh sản xuất. Và chúng tôi (là nhà phát triển) chỉ có thể tạo ra các chi nhánh để thêm các tính năng mới hoặc sửa lỗi và hợp nhất chúng với nhánh sản xuất (master). Nghe có vẻ rất đơn giản. Cách tiếp cận này phù hợp với lập trình cực đoan nơi chi nhánh sản xuất được triển khai nhiều lần trong một ngày.
Luồng GitLab (https://docs.gitlab.com/ee/workflow/production_branch.png, https://docs.gitlab.com/ee/workflow/environment_branches.png, https://docs.gitlab.com/ee/workflow/release_branches.png).
Tôi đã nhìn thấy các cụm từ mới như tiền sản xuất, chi nhánh sản xuất, chi nhánh phát hành (ổn định) và môi trường dàn dựng, môi trường tiền sản xuất, môi trường sản xuất. Họ có mối quan hệ gì giữa họ?
Tôi hiểu theo cách đó: Nếu cần thêm tính năng mới, chúng tôi triển khai chi nhánh tiền sản xuất từ nhánh chính. Khi chúng tôi hoàn thành tính năng, chúng tôi triển khai một chi nhánh sản xuất từ chi nhánh tiền sản xuất. Chi nhánh tiền sản xuất là giai đoạn trung gian. Và sau đó nhánh master kéo tất cả các thay đổi từ nhánh sản xuất.
Cách tiếp cận là tốt nếu chúng tôi muốn xem từng tính năng riêng biệt. Chúng tôi chỉ cần thanh toán trong chi nhánh những gì chúng tôi cần và xem xét.
Nhưng nếu chúng ta cần thể hiện công việc của mình, chúng tôi tạo chi nhánh phát hành có thẻ càng sớm càng tốt. Nếu sau này, chúng tôi sửa lỗi trong nhánh chính, chúng ta cần phải chọn chúng vào nhánh phát hành cuối cùng. Cuối cùng, chúng tôi có nhánh phát hành với các thẻ có thể giúp chúng tôi di chuyển giữa các phiên bản.
Tầm nhìn của tôi có đúng không? Sự khác biệt giữa kéo và chọn anh đào là gì?