2016-01-13 19 views
6

Tôi có kho lưu trữ git với dự án web. Tôi muốn tùy chỉnh dự án web này cho các khách hàng khác nhau.Git - duy trì nhiều phiên bản

Ví dụ: tôi có hai khách hàng c1 và c2. Vì vậy, tôi tạo ra hai nhánh git: c1 và c2.

Mọi phiên bản đều có cùng hệ thống cơ sở nhưng các tính năng khác nhau. Nếu tôi muốn thêm một tính năng mới hoặc sửa lỗi trong một nhánh thì không có vấn đề gì. Nhưng nếu tôi muốn thay đổi thứ gì đó liên quan đến cả hai nhánh. Điều này dẫn đến một số lượng lớn các xung đột hợp nhất.

Ai đó có thể cho tôi giải pháp tốt hơn cho vấn đề của tôi không?

+3

Nếu phần lớn được chia sẻ giữa các ứng dụng, bạn có thể sử dụng [Git submodules] (https://git-scm.com/book/en/v2/Git-Tools-Submodules) để lưu trữ các phần giống nhau. – Powerlord

+5

Kiểm soát phiên bản! = Cấu hình, Tạo chi nhánh cho mỗi khách hàng là độ dốc trơn. Tôi khuyên bạn nên xác định những gì là phổ biến và những gì nó khách hàng cụ thể, và có mỗi khách hàng có repo riêng của họ, khuyến nghị của @Powerlord để sử dụng submodules có thể giúp với điều đó – Lars

+0

Cảm ơn bạn Powerlord và Lars để được giúp đỡ của bạn! – user3241334

Trả lời

1

Tôi thích GitHub tính năng Fork để giải quyết vấn đề như vậy, ý tưởng chính là phải có kho và sao chép cam kết sử dụng Pull Request hoặc trong một số cách khác, với cách tiếp cận như vậy cả hai kho sẽ có cơ sở chung và sau đó sẽ phát triển các kho riêng biệt riêng.

Để sử dụng phương pháp tương tự nó không phải là cần thiết để sử dụng GitHub, bạn chỉ có thể tạo ra một vài kho git và sau đó bổ sung thêm remote, thay vì Pull Request bạn chỉ có thể sử dụng cherry-pick cho bản cam kết từ một kho lưu trữ khác. Cách tiếp cận này sẽ không giúp giải quyết xung đột theo một cách nào đó tốt hơn. Ngoài ra, bạn nên nghĩ về cách mô-đun để phát triển các phần chung như mô-đun riêng biệt, điều này có thể được thực hiện với submodules hoặc với một số phương pháp khác liên quan đến ngôn ngữ lập trình của bạn chẳng hạn như Java. các dự án khác sử dụng chức năng quản lý phụ thuộc của Maven, Gradle hoặc Ivy.

+0

Cảm ơn bạn đã trả lời. Tôi sử dụng các kho lưu trữ khác nhau cho từng khách hàng. – user3241334

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