2013-06-10 60 views
5

Chúng tôi đang trong quá trình phác thảo và chuẩn bị cho việc tích hợp Git và chúng tôi đang triển khai thiết kế tương tự với liên kết sau.Cách xử lý các xung đột hợp nhất tích hợp Git

http://nvie.com/posts/a-successful-git-branching-model/

Vấn đề chúng tôi đang chạy vào là khi bạn cam kết và đẩy đến 'phát triển' chi nhánh hoặc tích hợp liên tục chi nhánh, vì chúng ta có nhiều tổ công tác về các chi nhánh khác nhau, bạn đang bị ràng buộc để chạy vào xung đột nhập kể từ khi bạn sẽ không bao giờ kéo xuống từ 'phát triển' trước khi đẩy. Nó không có vẻ như thực hành tốt nhất cho đội đẩy để thử và giải quyết một cái gì đó họ không có nhiều nếu bất kỳ kiến ​​thức về.

Một ý tưởng mà chúng tôi đã thực hiện là yêu cầu kéo trên nhánh 'phát triển' và có một nhóm dành riêng để giải quyết những vấn đề đó.

Có bất kỳ tùy chọn nào mà chúng tôi đang thiếu không?

Trả lời

2

Ý tưởng đằng sau các nhánh tính năng là chúng chỉ nên chứa một thay đổi nhỏ, nguyên tử. Thay đổi này, theo lý thuyết, không gây xung đột hợp nhất do tính chất của nó.

Nếu đối tượng địa lý giới thiệu các xung đột hợp nhất, tôi sẽ có khuynh hướng kiểm tra những gì bạn cho là "một đối tượng địa lý".

Cách tôi đã trải nghiệm điều này được giới thiệu là một tính năng liên quan đến một nhiệm vụ cụ thể (về mặt thời gian) sẽ kéo dài không quá một hoặc hai ngày.

Với khoảng thời gian ngắn, không có xung đột hợp nhất nào xảy ra trong chu kỳ nhưng trong trường hợp chúng thực hiện, ví dụ khi bạn có nhiều đội làm việc trong cùng một khu vực của một codebase, mức độ giao tiếp là bắt buộc để đảm bảo rằng các xung đột được giải quyết theo cách chính xác.

Có các mô hình khác nhau mà bạn có thể áp dụng để giúp bạn quản lý giải quyết xung đột. Chúng tôi làm việc trên một mô hình cắt ngang trong đó nếu nhiều đội cần thay đổi được thực hiện trong một khu vực cụ thể của codebase, nó được gán cho nhóm có dự án bao trùm toàn bộ mô-đun đã cho. Công ty của bạn có thể quan tâm hơn đến mô hình cắt dọc, trong trường hợp đó, bạn ít có khả năng gặp phải xung đột hợp nhất giữa các nhóm.

Không có số lượng công cụ nào có thể đánh bại cuộc trò chuyện để giải quyết xung đột. Nếu bạn biết rằng các thay đổi của bạn sẽ tác động đến một tệp mà người khác đang làm việc, thì mô hình tốt nhất để theo dõi là một cuộc trò chuyện. Trong một số trường hợp, điều này sẽ không lý tưởng, doanh nghiệp có thể có những ý tưởng khác về thay đổi của họ khi nào nhưng miễn là mọi nhà phát triển giữ cho chi nhánh của họ luôn cập nhật với xu hướng phát triển thì xu hướng giảm xung đột giảm đáng kể.

0

Nếu bạn:

  1. Kéo đầu tiên trước mỗi push, và
  2. Sử dụng một pre-tested commit strategy

này sẽ không bao giờ là một vấn đề. Xung đột hợp nhất của bạn sẽ luôn xảy ra trên các máy phát triển nơi bạn có thể giải quyết chúng theo cách thủ công.

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