2015-07-31 14 views
13

Tôi đang sử dụng Git Flow với nhiều dự án, mỗi dự án có kho lưu trữ riêng của họ thành công.Bản phát hành có cấu trúc (luồng Git) cho nhiều dự án trong một kho lưu trữ đơn (monorepo)

Tôi đang tìm cách hợp nhất các kho này thành một đơn monorepo. Lý do chính là các dự án phụ thuộc chia sẻ trên nhiều dự án, trong đó, hiện tại có nghĩa là chúng tôi cần thực hiện các bản sửa lỗi trên nhiều kho lưu trữ (xem: thay đổi chéo dự án trong liên kết ở trên).

Facebook và Google dường như sử dụng thành công mô hình này (xem: this fb talkthis google talk).

Làm cách nào để tiếp tục sử dụng thứ gì đó tương tự như Git Flow trong khi sử dụng một kho lưu trữ duy nhất cho nhiều dự án?

Trong khi hữu ích, các cuộc hội thoại tôi đã liên kết không đi vào chi tiết như phân nhánh và gắn thẻ và cách chúng tổ chức các bản phát hành dự án khác nhau từ một thân cây/chủ.

Tôi chưa kết hôn với Git Flow. Tôi đang tìm cách cấu trúc các bản phát hành trong một monorepo.

+2

Nghiêm túc, đừng. Chỉ cần sử dụng mô-đun con nếu bạn cần phải buộc các phiên bản cụ thể. – o11c

+2

Tôi thành thật sẽ không sử dụng một monorepo nếu bạn đang làm việc với Git. Lý do Google và Facebook sử dụng nó là sự kết hợp của "nó luôn luôn được thực hiện theo cách đó" (Google), "chúng tôi có rất nhiều người dùng Perforce" (Google) và "dễ dàng hơn để di chuyển repo SVN của chúng tôi" (Facebook) . Tất nhiên, trong thời trang Google/Facebook điển hình, họ đưa ra các cuộc nói chuyện dài về lợi ích được cho là để biện minh cho quyết định của họ. Nhưng thành thật mà nói, monorepos không phù hợp với mô hình Git và các công cụ được thiết kế để làm việc với Git. – mipadi

+0

Các bản phát hành của bạn có được đồng bộ hóa trên tất cả các dự án không? Có nghĩa là có cùng số phiên bản và được phát hành cùng nhau? Nếu không thì tôi tưởng tượng số lượng nhánh có thể mất kiểm soát. –

Trả lời

1

Điều gì về việc sử dụng chi nhánh cho từng dự án và sử dụng nhánh con làm nhánh git-flow với cách đặt tên đúng cách? Ví dụ; có một chi nhánh có tên là project#1 cho một dự án, tương tự như chủ, và có các chi nhánh con có tên là project#1-develop, project#1-hotfix#11, v.v. Ngoài ra, bạn có thể có một chi nhánh master duy nhất mà bạn hợp nhất các nhánh dự án tại các bản phát hành.

+0

mặc dù thực tế là câu hỏi này có lẽ không phù hợp với SO theo hướng dẫn của nó, tôi quan tâm để xem điều này diễn ra như thế nào. Chúng tôi đang hướng tới monorepo, và tôi đã nghĩ ra cách để làm cho nó hoạt động với git và gitflow. Hiện tại chúng tôi có địa ngục PR và nhóm của chúng tôi rất nhỏ. Tôi sợ điều gì sẽ xảy ra khi nhóm phát triển. – Nick

Các vấn đề liên quan