2013-02-11 20 views
65

Dưới đây là các bước góp mã từ chủ đề "How do I contribute to other's code in GitHub?"Kéo yêu cầu mà không bị nghẹt thở?

  1. Fork dự án
  2. Hãy một hoặc tốt hơn nhận xét và sạch sẽ cam kết vào kho. Bạn có thể tạo một chi nhánh mới tại đây nếu bạn đang sửa đổi nhiều hơn một phần hoặc tính năng.
  3. Thực hiện yêu cầu kéo trong giao diện web của github.

Có thể thực hiện yêu cầu kéo mà không cần giật lùi không?

Thật buồn khi thấy hơn 20 bản repos trong tài khoản của tôi được chia cho một số yêu cầu kéo. Họ không có hoạt động sau đó và không có sao/người theo dõi. Có vẻ như tôi chỉ đang sao chép mã của ai đó trong một ngày đen.

+0

Tại sao bạn sẽ muốn? –

+2

Câu hỏi hay. Nó cũng không rõ ràng để có được những repos 20 up-to-date với bản gốc (hoặc xóa chúng). –

Trả lời

59

Nếu bạn không có quyền truy cập để tạo chi nhánh trên kho lưu trữ đó, có không có cách nào để tạo yêu cầu kéo mà không cần hỏi.

+4

Bạn có thể giải thích cách bạn có thể tạo yêu cầu kéo nếu bạn KHÔNG có quyền truy cập vào các chi nhánh trên kho lưu trữ đó không? – bolinfest

+10

GitHub có một hướng dẫn tốt về điều đó: https://help.github.com/articles/creating-a-pull-request/ –

20

Khi yêu cầu kéo của bạn được chấp nhận, bạn có thể safely delete the repo nếu bạn không có ý định làm việc trên đó và sao chép trực tiếp từ bản gốc ngược dòng.

Nếu bạn có yêu cầu kéo khác để thực hiện, sau đó bạn nên làm cho họ ở chi nhánh của họ riêng tương ứng, có nghĩa là bạn có thể xóa một cách an toàn các chi nhánh bạn đã thực hiện để quản lý một yêu cầu kéo được chấp nhận (như trong "My pull request has been merged, what to do next?")

+2

FYI, github gần đây đã thêm một nút để hợp nhất các yêu cầu kéo để làm cho nó dễ dàng (và trực quan) để xóa nhánh yêu cầu kéo: https://github.com/blog/1335-tidying-up-after-pull-requests –

7

Theo định nghĩa, yêu cầu kéo liên quan đến một ngã ba trừ khi bạn có quyền truy cập vào kho đích. Bạn có thể làm một vài điều, mặc dù:

  1. Nếu bạn làm đã cam kết truy cập, tạo ra một chi nhánh và thực hiện yêu cầu kéo của bạn chống lại các chi nhánh mới.
  2. Đăng bản vá của bạn trong phần nội dung của sự cố. Đây không thực sự là cách GitHub, nhưng nó chắc chắn hoạt động.
  3. Ngắt kho lưu trữ, tạo yêu cầu kéo và sau đó xóa ngã ba sau khi yêu cầu kéo được hợp nhất hoặc bị từ chối.

Nếu bạn đang cố gắng tránh giữ các kho lưu trữ xung quanh mà bạn không chủ động sử dụng, cá nhân tôi đề xuất tùy chọn # 3. Nó dính vào luồng công việc GitHub được chấp nhận mà không làm lộn xộn bảng điều khiển của bạn.

6

github hỗ trợ Shared Repository Model

Các Shared Repository Model là phổ biến hơn với các đội nhỏ và các tổ chức hợp tác trên các dự án tư nhân. Mọi người đều được cấp quyền truy cập push vào một kho lưu trữ được chia sẻ và các nhánh chủ đề được sử dụng để tách biệt các thay đổi.

Yêu cầu kéo đặc biệt hữu ích trong mẫu Fork & Kéo vì chúng cung cấp cách thông báo cho người bảo trì dự án về những thay đổi trong ngã ba của bạn. Tuy nhiên, chúng cũng hữu ích trong Mô hình Kho lưu trữ Chia sẻ nơi chúng được sử dụng để bắt đầu xem xét mã và thảo luận chung về một tập hợp các thay đổi trước khi được sáp nhập vào một nhánh chính.

+2

Lưu ý cách điều này không giải thích cách tạo yêu cầu kéo trong mô hình này. – bolinfest

0

Bạn vẫn cần có một liner: hub fork;git push -u $GIT_USER HEAD;hub pull-request

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