2014-04-15 19 views
5

Trên các dịch vụ cung cấp kho lưu trữ Git trên đám mây, tôi luôn tìm các yêu cầu hợp nhất. Mục đích của nó là gì? Ai được cho là tạo ra nó?Yêu cầu hợp nhất là gì?

Ngoài ra, vòng đời của yêu cầu hợp nhất là gì? Ai đó tạo ra nó, và sau đó - những gì chu kỳ nó nên vượt qua?

Trả lời

5

Tôi tin rằng bạn đang đề cập đến yêu cầu kéo (PR) mà bạn nhập vào nhánh chính của mình. Yêu cầu kéo là cách tiêu chuẩn của những người đã phân nhánh (chia rẽ) mã của bạn để sau đó quay trở lại nhánh chính. Nói chung, một PR nên giải quyết một lỗi hoặc thêm một tính năng. Điều này thường đạt được bằng cách sử dụng các chi nhánh tính năng trên mã chia nhỏ và sau đó tạo một yêu cầu kéo trên nhánh đó khi tính năng được hoàn thành. Điều này làm cho việc sáp nhập dễ dàng hơn nhiều và có nghĩa là nếu bạn làm việc trên nhiều đối tượng và một đối tượng bị từ chối nhưng đối tượng kia được chấp nhận, chi nhánh của chúng sẽ không xung đột.

Vì vậy, để trả lời câu hỏi của bạn về những người được cho là tạo ra chúng, thường là những người đã chia nhỏ mã của bạn. Điều này thậm chí có thể là những người trong nhóm phát triển của bạn nếu đó là cách bạn chọn làm việc. Khu vực chính nơi hoạt động này là với các dự án nguồn mở công khai. Ví dụ, openssl có một github công khai mà bất kỳ ai cũng có thể chia rẽ, và sau đó nếu ai đó muốn thêm một tính năng hoặc sửa lỗi, họ sẽ: fork, branch, commit, push và submit một PR.

Sau khi tạo PR, vòng đời của bạn sẽ mất. Nó không được xác định trước. Nói chung, ít nhất bạn phải làm là: quyết định xem lỗi hay tính năng có đáng giá hay không, kiểm tra mã để đảm bảo nó thực hiện những gì nó nói và được viết tốt và đáp ứng bất kỳ tiêu chuẩn mã hóa nào được đặt ra cho dự án của bạn và sau đó nếu nó tốt và hợp nhất nó.

Bạn có thể làm cho vòng đời trở nên phức tạp hơn bằng cách chuyển đến một nhánh phát triển để thử nghiệm với các tính năng phát triển khác trước khi được hợp nhất vào tổng thể nhưng thực sự là bạn phải tìm một quy trình làm việc cho dự án của bạn .

+1

Chỉ cần lưu ý: Yêu cầu kéo có thể yêu cầu mã được hợp nhất vào bất kỳ chi nhánh nào, không chỉ chi nhánh chính. (Không có gì đặc biệt đặc biệt về chủ trong git.) Ví dụ, tôi có thể gửi một yêu cầu kéo để sửa lỗi trong một nhánh phát hành; tương tự, tôi có thể gửi yêu cầu kéo để sửa lỗi trong nhánh tính năng. – Thanatos

4

Yêu cầu hợp nhất và yêu cầu kéo về cơ bản đề cập đến cùng một điều. Các công cụ như GitHub và Bitbucket chọn tên yêu cầu kéo kéo vì thao tác thủ công đầu tiên sẽ là kéo nhánh tính năng. Các công cụ như GitLab và Gitorious chọn tên yêu cầu hợp nhất vì đó là hành động cuối cùng được yêu cầu của người được chuyển nhượng.

Yêu cầu kéo/Hợp nhất được tạo nếu bạn đang làm việc trong chi nhánh tính năng và muốn hợp nhất thay đổi của bạn trong nhánh chính (ví dụ: Chi nhánh chính). Các yêu cầu hợp nhất đóng vai trò như một công cụ đánh giá mã và nếu mã của bạn cho thấy những thiếu sót/vấn đề mà bất kỳ ai (thường là các nhà phát triển khác) có thể cam kết và đẩy một bản sửa lỗi.

Vòng đời: Bạn tạo chi nhánh, khắc phục một số vấn đề hoặc thêm đối tượng địa lý, tạo yêu cầu kéo/hợp nhất, sau đó gán cho ai đó, họ sẽ xem xét sửa chữa của bạn và có thể chấp nhận/từ chối kéo/hợp nhất yêu cầu.

Xin lưu ý rằng yêu cầu hợp nhất/kéo không được nhầm lẫn với lệnh "git merge" hoặc "git pull".

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