2012-03-12 26 views
5

Tôi đã đọc về Integration Manager Workflow và có vẻ rất phù hợp với quy trình phát triển của chúng tôi (một nhà phát triển chính cho dự án, người đánh giá công việc của các nhà phát triển trước khi nó cam kết với kho lưu trữ của dự án).Quy trình quản lý tích hợp Git - một hoặc nhiều kho lưu trữ?

Tuy nhiên, có một điều không rõ ràng với tôi. Trong hình dung này từ cuốn sách Git Pro nó xuất hiện như thể mỗi nhà phát triển có kho riêng (từ xa) của mình để push to:

enter image description here

trong this chapter (phần "Private Đội bóng nhỏ"), tuy nhiên, họ dường như đang sử dụng các nhánh để đạt được cùng một loại quy trình làm việc.

Điều này có đúng không? Chiến thuật nào chúng ta nên sử dụng; chi nhánh hoặc nhiều kho lưu trữ? Tôi đoán nó khó khăn hơn để duy trì một thời gian của cam kết nếu bạn kéo làm việc từ một kho lưu trữ khác nhau?

Trả lời

2

Bạn có thể sử dụng quy trình làm việc mà bạn đã liên kết nhưng tính năng này chi phí cao hơn một chút. Lợi thế lớn nhất là bạn có thể làm việc không đồng bộ và chỉ cần truy cập vào máy chủ.

Bạn không phải sử dụng repos công khai và riêng tư. Bạn vẫn có thể có một luồng công việc dựa trên kéo nếu bạn có quyền truy cập vào các kho lưu trữ của các nhà phát triển khác, nơi các nhà phát triển cam kết với các repos địa phương của họ và bạn kéo chúng từ chúng.

Ví dụ: Nói dev A đang làm việc trên featureA chi nhánh. Anh ta cam kết với tính năng chi nhánh địa phương của mình và cho bạn biết "tính năng A đã sẵn sàng ngay bây giờ, bạn có thể lấy từ tôi". Ở đây bạn có thể thiết lập kho lưu trữ của mình như một từ xa như "git remote add devA /path/to/devA/repo.git" và chỉ cần git pull devA featureA (hoặc tìm nạp trước, kiểm tra mã và sau đó hợp nhất).

enter image description here

Điều này tất nhiên giả định rằng bạn có quyền truy cập vào kho dữ liệu của họ thông qua ví dụ mạng, ssh hoặc http.

+0

Nhưng cũng có thể có một kho lưu trữ trung tâm, với các nhà phát triển không duy trì chỉ đẩy vào các nhánh bổ sung, mà người duy trì sau đó hợp nhất vào tổng thể? – Rijk

+0

Ah, ví dụ của bạn rất rõ ràng, cảm ơn. Quy trình làm việc này có bất kỳ bất lợi nào so với thực hiện tất cả điều này trong một kho lưu trữ (ví dụ: lịch sử cam kết bị mất, v.v ...) không? – Rijk

+0

Vấn đề là với git, bạn không bao giờ chỉ có một kho lưu trữ :) Các nhà phát triển sẽ luôn luôn có một repo của riêng mình. Nó chỉ là vấn đề làm thế nào bạn muốn kho lưu trữ DAG trông giống như, tức là ai đẩy những gì để repo gì, hoặc ai kéo cái gì từ đó repo, vv Làm cho bất kỳ ý nghĩa? – ralphtheninja

1

Câu hỏi này đã xảy ra một lúc nhưng cách tiếp cận được đưa ra trong câu hỏi là một câu hỏi hợp lệ. Nó được gọi là Forking Workflow. Vâng, nó rất giống với một ở trên và dường như phù hợp với nó trong mục đích và mục đích nhưng ít nhất có một cách viết đẹp nên làm rõ chiến lược.

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