Làm cách nào để sửa đổi một yêu cầu kéo trên GitHub để thay đổi nhánh mục tiêu để hợp nhất vào?


117

Tôi có một yêu cầu kéo đang yêu cầu hợp nhất thành chính từ chi nhánh của tôi, nhưng chủ sở hữu muốn tôi thay đổi yêu cầu hợp nhất thành một chi nhánh khác với chi nhánh của tôi.

Điều này có khả thi không? Các giải pháp khả thi là gì?

Câu trả lời:


137

Cập nhật tháng 8 năm 2016: Thay đổi nhánh cơ sở của Yêu cầu kéo cuối cùng cũng cho phép thay đổi nhánh đó.
(Và điều này kết thúc số 18 , đã được 3 năm và có hơn 1500 bình luận)

Sau khi bạn đã tạo một yêu cầu kéo, bạn có thể sửa đổi nhánh cơ sở để những thay đổi trong yêu cầu kéo được so sánh với một nhánh khác.

nhập mô tả hình ảnh ở đây


Câu trả lời ban đầu:

Vì không thể chỉnh sửa bài PR theo ngành (xem bên dưới), cách dễ nhất là:

  • tạo một chi nhánh mới tại địa phương trên đầu chi nhánh hiện tại của bạn
  • đẩy chi nhánh mới đó
  • thực hiện một bài PR mới với đúng điểm đến.
  • đóng PR trước
  • tham chiếu yêu cầu kéo "cũ" từ yêu cầu mới; ví dụ. Supersedes #123(như bình luận bên dưới của Rivera )

(câu trả lời gốc, chỉ có giá trị khi tạo PR )

Bạn có thể thử và chọn một nhánh cơ sở khác , như trong " Thay đổi phạm vi nhánh và kho lưu trữ đích " (Nhấp vào Editnút ở đầu trang PR)

https://github-images.s3.amazonaws.com/help/pull_requests/pull-request-review-edit-branch.png

Cách dễ nhất để nghĩ về phạm vi nhánh là:

  • các chi nhánh cơ sở là nơi bạn nghĩ rằng thay đổi này sẽ được áp dụng,
  • các chi nhánh đầu là những gì bạn muốn được áp dụng.

Thay đổi kho lưu trữ cơ sở thay đổi người được thông báo về yêu cầu kéo.
Mọi người có thể đẩy đến kho lưu trữ cơ sở sẽ nhận được thông báo qua email và thấy yêu cầu kéo mới trong trang tổng quan của họ vào lần đăng nhập tiếp theo.

Nếu bạn chọn làm chi nhánh cơ sở mà người bảo trì ban đầu (chủ sở hữu) muốn, thì PR của bạn nên hợp nhất từ ​​chi nhánh của bạn (không thay đổi) sang chi nhánh cơ sở mới.


@Moriarty Tôi không có PR đang thực hiện, nhưng là người tạo ra PR, bạn không thấy nút Chỉnh sửa sau khi PR của bạn được gửi đi?
VonC

3
Tôi làm, nhưng điều đó chỉ cho phép tôi sửa đổi tên PR. Tôi giả sử rằng bạn không thể trực tiếp thay đổi hợp nhất PR thành chi nhánh khi gửi. Tôi đang tự hỏi nếu có một giải pháp thay thế (cách để hợp nhất một PR vào một chi nhánh khác).
Moriarty

2
Có một yêu cầu tính năng mở để có thể thay đổi các chi nhánh mục tiêu của một PR: github.com/isaacs/github/issues/18
Jason Antman

1
Bạn cũng nên tham khảo yêu cầu kéo "cũ" từ yêu cầu mới (ví dụ: Supersedes # 123).
Rivera

1
@Shimmy Tôi không nghĩ vậy, không phải từ GUI web.
VonC

6

Nếu chi nhánh của bạn (vẫn) khả dụng từ xa, bạn không phải tạo chi nhánh mới tại địa phương.

  • Chọn chi nhánh của bạn (có các thay đổi mà bạn đang gửi) trực tiếp từ menu thả xuống hoặc trong "# chi nhánh" ( https://github.com/account/project/bragets ).

  • Nhấp vào "Yêu cầu kéo mới". Điều này cho phép bạn chọn một chi nhánh cơ sở (mục tiêu) mới.

Đây là ảnh chụp màn hình giao diện mới của Github: nhập mô tả hình ảnh ở đây

Tôi có thể gửi PR của chi nhánh UXso với bất kỳ ngã ba / chi nhánh nào --- dù trước đó tôi có gửi PR cho chi nhánh hay không UX.


1
Nút "Yêu cầu kéo mới" màu xanh lá cây được chuyển đến trang web danh sách PR, ở góc trên cùng bên phải.
Ngón tay cái vàng

Tôi không chắc ý của bạn khi nói "đã được di chuyển" nhưng có, bạn có thể tìm thấy nút màu xanh lục "Yêu cầu kéo mới" ở cả hai nơi.
mkcor

4

Bây giờ bạn có thể: https://github.com/blog/2224-change-the-base-branch-of-a-pull-request

"Bây giờ, bạn có thể thay đổi nhánh cơ sở của một yêu cầu kéo mở. Sau khi bạn đã tạo một yêu cầu kéo, bạn có thể sửa đổi nhánh cơ sở để những thay đổi trong yêu cầu kéo được so sánh với một nhánh khác. Bằng cách thay đổi nhánh cơ sở của yêu cầu kéo ban đầu của bạn thay vì mở một yêu cầu mới với nhánh cơ sở chính xác, bạn sẽ có thể giữ lại các công việc và cuộc thảo luận có giá trị. "


2

Bạn phải tạo một yêu cầu kéo mới như đã đề cập trong LINK gibhub doc

  1. Lựa chọn đầu tiên New Pull request
  2. compare pagebên trái, chọn cái target branchbạn muốn đẩy và bên phải chọn cái branch you already pushed.
  3. Cập nhật các chi tiết cho mới của bạn PR.
  4. Tạo PR

-4

Nó khá đơn giản. Chỉ cần nhấp vào PR mà bạn muốn thay đổi nhánh cơ sở của nó. Tìm nút "Đóng yêu cầu kéo" ở gần cuối trang web. Bây giờ bạn có thể tạo lại một bài PR mới một cách bình thường - hãy đảm bảo lần này bạn chọn đúng nhánh cơ sở.


Tôi không hiểu tại sao điều này bị phản đối. Điều này hoàn toàn tốt cho tôi.
Héo

3
Tôi đã không bỏ phiếu. Nhưng tôi thấy rằng câu trả lời này chỉ lặp lại các câu trả lời cũ hơn hiện có (và nó làm như vậy với chất lượng kém hơn).
Lars Blumberg

@LarsBlumberg Nếu bạn đọc kỹ, bạn sẽ nhận thấy rằng nó không phải là sự lặp lại, mặc dù có thể có một số trùng lặp. Đối với tôi, if (n -1) bước, thay vì bước n, có thể giải quyết được vấn đề, nó có giá trị chia sẻ :-)
Vàng Thumb

2
Nếu (n-1) bước bỏ qua các bước hữu ích, chẳng hạn như đóng PR cũ và tham chiếu trong PR mới, tôi không thấy giá trị khi lặp lại tập hợp con các bước từ một câu trả lời đã có. Đặc biệt là khi danh sách các bước ít hơn sẽ khó đọc hơn do thiếu định dạng thích hợp.
Lars Blumberg
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.