Nghi thức chỉnh sửa yêu cầu kéo của ai đó


19

Tôi sở hữu một kho lưu trữ trên GitHub mà ai đó đã gửi yêu cầu kéo với một cam kết duy nhất. Tôi chỉ muốn thực hiện một phần giải pháp của mình và sử dụng khoảng một nửa mã thay đổi mà người dùng đã thực hiện. Tôi nên làm gì trong tình huống này?

Tạo một nhánh của phiên bản của anh ấy, sau đó quay lại và sao chép và dán mã "cũ" mà tôi muốn giữ lại từ phiên bản gốc vào một cam kết thứ hai. Điều này có thể làm cho sự khác biệt giữa các cam kết trông lớn hơn so với thực tế và loại bỏ những thứ như thế git blame.

Sao chép và dán mã tôi muốn giữ từ cam kết của anh ấy vào một cam kết mới, khác biệt . Điều này có nghĩa là anh ta không nhận được tín dụng cho đóng góp có giá trị của mình cho mã.

Tương tự như trên, sao chép một số mã của anh ấy vào một cam kết mới, nhưng thay đổi tác giả của cam kết với anh ấy thay vì tôi . Về mặt kỹ thuật, anh ta đã không viết mã chính xác đã được cam kết, vì vậy tôi không chắc liệu đây có phải là cái nhíu mày không. Nhưng ít nhất anh ta có được sự ghi nhận cho những dòng được sử dụng.


1
Hãy nhớ rằng git phân biệt "tác giả" và "người đi làm". Vì vậy, khi bạn viết lại cam kết của họ chỉ chứa những gì bạn thực sự muốn, họ vẫn sẽ được coi là tác giả. Và bạn là người đi làm.
Jan Hudec

Câu trả lời:


36

Tôi muốn đi với tùy chọn 4: giải thích cho lý do tại sao người đóng góp yêu cầu kéo của ông không phù hợp với mục tiêu của dự án (và trong quá trình cung cấp cho người đóng góp một cơ hội để giải thích tại sao ông nghĩ rằng nó không ) và yêu cầu ông phải gửi lại một phiên bản mới có chứa chỉ những thay đổi phù hợp với dự án.

Điều này có ba lợi ích:

  1. Bạn không phải làm việc ;-)
  2. Người đóng góp sẽ hiểu rõ hơn về mục tiêu của bạn, khiến nhiều khả năng những đóng góp trong tương lai không cần bất kỳ thay đổi nào
  3. Ngoài việc giữ lại ý thức về quyền sở hữu, người đóng góp được thừa nhận và công nhận là đã đóng góp hữu ích. Tất cả những điều đó làm cho họ có nhiều khả năng tiếp tục đóng góp

3
Một ví dụ cổ điển về một giải pháp xã hội cho một vấn đề kỹ thuật.
paul
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.