2012-04-20 28 views
5

Bạn sẽ đề xuất cách quản lý chức năng dành riêng cho khách hàng và yêu cầu thay đổi trong phạm vi Git-flow hoặc Git nói chung? Các tính năng cụ thể của khách hàng có thuộc một chi nhánh riêng biệt dành riêng cho khách hàng không? (Mỗi khách hàng có chi nhánh riêng của mình từ chi nhánh phát triển.) Hoặc họ có ở trong một kho lưu trữ riêng biệt không? (Mỗi khách hàng có một kho lưu trữ chuyên dụng, với kho lưu trữ chính là kho chính của chúng tôi.)Chức năng lưu lượng Git và máy khách cụ thể

+0

câu hỏi thú vị. Nhưng nó là một vấn đề git-flow hay chỉ là một vấn đề git? (Lưu ý, tôi mới cho cả git và git-flow, vì vậy tôi không phải là snarky ở đó.) –

+0

Vâng, chúng tôi đang cố gắng để làm theo cấu trúc dòng chảy git, nhưng điều này có thể áp dụng cho Git nói chung. Ví dụ. thực hành thông thường để xử lý những trường hợp như thế nào. – Dario

Trả lời

2

Tôi sẽ tạo một kho lưu trữ riêng cho cơ sở và khách hàng của bạn. Các khách hàng sẽ có một cơ sở mà sẽ có một chi nhánh từ xa, là cơ sở của bạn. Khi một khách hàng cần một bản phát hành mới, nó dễ dàng hơn theo cách này. Nếu bạn sẽ đặt tất cả các máy khách trong một kho lưu trữ, bạn sẽ phải thay đổi thủ công nhánh tích hợp/nhà phát triển trước khi bạn bắt đầu phát hành dòng git. Điều này sẽ hạn chế khả năng của bạn hoạt động trên nhiều bản phát hành cho các khách hàng khác nhau.

4

Có vẻ như bạn có một mã cơ sở mà tất cả khách hàng sử dụng, và sau đó bạn có một số "hack" cho chức năng cụ thể của khách hàng.

Theo ý kiến ​​của tôi, bạn sẽ có tất cả mã "cơ sở" trên nhánh chính. Tất cả khách hàng sẽ có một chi nhánh cụ thể của khách hàng. Hãy cẩn thận và biết nơi mà các thay đổi của bạn đang được thực hiện.

Thường xuyên như vậy, hãy đảm bảo bạn khôi phục các nhánh khách hàng, về cơ bản đưa chúng lên mã cơ sở và sau đó phát lại tất cả các thay đổi cụ thể của chúng.

Việc rebasing có thể khá khó hiểu cho đến khi bạn thấy nó hoạt động.

Sử dụng số cam kết tuần tự để làm rõ. Cam kết không phải là số thực trong cuộc sống thực

 
Master is at commit 10 
\ 
    Branch has commits 10, 11, 12, 13, 14, 15 (notice it has commit 10 as well) 
| 
Master commits 16, 17 


When you rebase: 
    Master has 10, 16, 17. 
    Branch has 10, 16, 17, 11, 12, 13, 14, 15 

Đơn đặt hàng ở đây rất quan trọng. Rebase tua lại chi nhánh thành 10, áp dụng 16 và 17 và sau đó phát lại các thay đổi 11, 12, 13, 14 và 15.

Tại thời điểm này, miễn là không có xung đột, chi nhánh sẽ ngày với chủ và có những thay đổi cụ thể của khách hàng.

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