đây là mô tả về công việc hàng ngày của tôi:Git làm việc chiến lược - nhiều tính năng, phiên bản rất thường xuyên
Hai nhà phát triển làm việc trong nhiều tính năng nhỏ hoặc sửa chữa, giả sử 3-4 mỗi ngày đối với mỗi nhà phát triển. tôi cần để có thể làm việc trên các tính năng A - B - C cùng một lúc, trong khi đồng nghiệp của tôi hoạt động trên tính năng D và E.
thứ hai: Tính năng A được đẩy lên một dàn máy chủ để xem xét khách hàng . Tính năng B được đẩy đến cùng một máy chủ dàn dựng để xem xét khách hàng. Tính năng D được đẩy đến cùng một máy chủ dàn dựng để xem xét khách hàng.
Thứ Ba: Chúng tôi nhận được sự chấp thuận của khách hàng cho A và D (nhưng không phải cho B). Và họ cần phải sống với những thay đổi đó ngay lập tức.
Thứ tư: Tính năng C được đẩy tới cùng một máy chủ dàn xếp để xem xét khách hàng. Phê duyệt cho B cuối cùng cũng được nhận.
Thứ năm: Tính năng B phải được đẩy vào sản xuất ngay lập tức.
Thứ sáu: Lỗi được phát hiện trong bản phát hành sản phẩm cuối cùng và chúng tôi cần quay lại phiên bản trước.
Điều này không thể coi là quá trình giống như Scrum vì không có khả năng nhóm các đối tượng thành Câu chuyện hoặc lập kế hoạch chạy nước rút. Điều này giống như một quy trình bảo trì (có thể là Kanban?).
Bạn có thể đưa ra ví dụ về cách bạn xử lý việc này bằng Git không? Giả sử rằng ngay bây giờ, chúng ta chỉ có một nhánh chính và bất cứ khi nào chúng ta muốn đẩy bất cứ thứ gì để dàn dựng hoặc sản xuất, chúng ta phải "git pull" thực hiện tất cả các thay đổi trực tiếp (ngay cả những cái không mong muốn). Còn về git "cherry-pick" để lấy các cam kết cụ thể? Một chi nhánh cho mỗi đối tượng địa lý có vẻ quá ghê tởm vì chúng tôi có quá nhiều tính năng. Nếu bạn có thể đưa ra các ví dụ cụ thể về các lệnh và các nhánh của Git (chỉ để hiển thị ý tưởng chính, không cần phải chính xác 100%), điều đó thật tuyệt vời.
Cảm ơn.