จะแก้ไขคำขอดึงบน GitHub เพื่อเปลี่ยนสาขาเป้าหมายที่จะรวมได้อย่างไร


117

ฉันมีคำขอดึงข้อมูลที่กำลังขอการรวมเป็นมาสเตอร์จากสาขาของฉัน แต่เจ้าของต้องการให้ฉันเปลี่ยนคำขอเพื่อรวมเป็นสาขาอื่นจากสาขาของฉัน

เป็นไปได้หรือไม่ แนวทางแก้ไขที่เป็นไปได้คืออะไร?

คำตอบ:


138

อัปเดตสิงหาคม 2559: เปลี่ยนสาขาพื้นฐานของคำขอดึงในที่สุดก็อนุญาตให้เปลี่ยนสาขานั้นได้
(และนี่เป็นการปิดฉบับที่ 18ซึ่งมีอายุ 3 ปีและมีความคิดเห็นมากกว่า 1,500 ความคิดเห็น)

หลังจากที่คุณสร้างคำขอดึงคุณสามารถปรับเปลี่ยนสาขาพื้นฐานเพื่อให้เปรียบเทียบการเปลี่ยนแปลงในคำขอดึงกับสาขาอื่น

ใส่คำอธิบายภาพที่นี่


คำตอบเดิม:

เนื่องจากไม่สามารถแก้ไข PR ในแง่ของสาขาได้ (ดูด้านล่าง) วิธีที่ง่ายที่สุดคือ:

  • สร้างสาขาใหม่ในพื้นที่ที่ด้านบนของสาขาปัจจุบันของคุณ
  • ผลักดันสาขาใหม่นั้น
  • ทำการประชาสัมพันธ์ใหม่โดยมีจุดหมายปลายทางที่ถูกต้อง
  • ปิด PR ก่อนหน้านี้
  • อ้างอิงคำขอดึง "เก่า" จากคำขอใหม่ เช่น. Supersedes #123(ตามความคิดเห็นด้านล่างโดยริเวร่า )

(คำตอบเดิมใช้ได้เฉพาะเมื่อสร้าง PR )

คุณสามารถลองและเลือกสาขาพื้นฐานอื่นได้เช่นใน " การเปลี่ยนช่วงสาขาและที่เก็บปลายทาง " (คลิกที่Editปุ่มที่ด้านบนของหน้าประชาสัมพันธ์)

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

วิธีที่ง่ายที่สุดในการคิดเกี่ยวกับช่วงสาขาคือ:

  • สาขาฐานเป็นที่ที่คุณคิดว่าการเปลี่ยนแปลงที่ควรใช้
  • สาขาหัวคือสิ่งที่คุณต้องการที่จะนำมาใช้

การเปลี่ยนที่เก็บฐานจะเปลี่ยนผู้ที่ได้รับแจ้งการร้องขอการดึง
ทุกคนที่สามารถพุชไปยังที่เก็บฐานจะได้รับการแจ้งเตือนทางอีเมลและเห็นคำขอดึงใหม่ในแดชบอร์ดเมื่อลงชื่อเข้าใช้ครั้งถัดไป

หากคุณเลือกสาขาพื้นฐานตามที่ผู้ดูแลเดิม (เจ้าของ) ต้องการ PR ของคุณควรรวมจากสาขาของคุณ (ไม่เปลี่ยนแปลง) ไปยังสาขาฐานใหม่


@ โมริอาร์ตี้ฉันไม่มี PR อยู่ แต่ในฐานะผู้สร้าง PR คุณไม่เห็นปุ่มแก้ไขเมื่อส่ง PR ไปแล้ว?
VonC

3
ฉันทำได้ แต่นั่นช่วยให้ฉันแก้ไขชื่อประชาสัมพันธ์เท่านั้น ฉันสมมติว่าคุณไม่สามารถเปลี่ยนการรวม PR เป็นสาขาได้โดยตรงเมื่อส่ง ฉันสงสัยว่ามีทางเลือกอื่นหรือไม่ (วิธีรวม PR เข้ากับสาขาอื่นโดยไม่คำนึงถึง)
Moriarty

2
มีคำขอคุณสมบัติที่เปิดให้สามารถเปลี่ยนสาขาเป้าหมายของการประชาสัมพันธ์: github.com/isaacs/github/issues/18
Jason Antman

1
นอกจากนี้ยังควรอ้างอิงคำขอดึง "เก่า" จากคำขอใหม่ (เช่นแทนที่ # 123)
ริเวร่า

1
@Shimmy ฉันไม่คิดอย่างนั้นไม่ใช่จากเว็บ GUI
VonC

6

หากสาขาของคุณ (ยัง) พร้อมให้บริการจากระยะไกลคุณไม่จำเป็นต้องสร้างสาขาใหม่ในเครื่อง

  • เลือกสาขาของคุณ (ซึ่งรองรับการเปลี่ยนแปลงที่คุณกำลังส่ง) โดยตรงจากเมนูแบบเลื่อนลงหรือภายใต้ "# สาขา" ( https://github.com/account/project/branches )

  • คลิก "คำขอดึงใหม่" วิธีนี้ช่วยให้คุณสามารถเลือกสาขาฐาน (เป้าหมาย) ใหม่ได้

นี่คือภาพหน้าจอของอินเทอร์เฟซใหม่ของ Github: ใส่คำอธิบายภาพที่นี่

ฉันสามารถส่ง PR ของสาขาUXเทียบกับส้อม / สาขาใดก็ได้ - ไม่สำคัญว่าก่อนหน้านี้ฉันจะส่ง PR สำหรับสาขาUXหรือไม่


1
ปุ่ม "คำขอดึงใหม่" สีเขียวจะถูกย้ายไปที่หน้าเว็บรายการประชาสัมพันธ์ที่มุมขวาบน
Golden Thumb

ฉันไม่แน่ใจว่าคุณหมายถึงอะไร "ถูกย้าย" แต่ใช่คุณจะพบปุ่มสีเขียว "คำขอดึงใหม่" ในทั้งสองที่
mkcor

4

ตอนนี้คุณสามารถ: https://github.com/blog/2224-change-the-base-branch-of-a-pull-request

"ตอนนี้คุณสามารถเปลี่ยนสาขาพื้นฐานของคำขอดึงแบบเปิดได้หลังจากที่คุณสร้างคำขอดึงแล้วคุณสามารถปรับเปลี่ยนสาขาพื้นฐานเพื่อให้การเปลี่ยนแปลงในคำขอดึงถูกเปรียบเทียบกับสาขาอื่นได้โดยการเปลี่ยนสาขาพื้นฐานของ คำขอดึงเดิมของคุณแทนที่จะเปิดรายการใหม่ด้วยสาขาฐานที่ถูกต้องคุณจะสามารถเก็บงานและการอภิปรายที่มีคุณค่าไว้ได้ "


2

คุณต้องสร้างการร้องขอดึงใหม่เป็นที่กล่าวถึงในเอกสาร gibhub LINK

  1. ก่อนอื่นให้เลือก New Pull request
  2. ในcompare pageด้านซ้ายเลือกสิ่งที่target branchคุณต้องการดันและด้านขวาเลือกไฟล์branch you already pushed.
  3. PRอัปเดตรายละเอียดใหม่ของคุณ
  4. สร้างไฟล์ PR

-4

มันค่อนข้างง่าย เพียงคลิก PR ที่คุณต้องการเปลี่ยนสาขาพื้นฐาน ค้นหาปุ่ม "ปิดคำขอดึง" ใกล้ด้านล่างของหน้าเว็บ ตอนนี้คุณสามารถสร้าง PR ใหม่ได้ตามปกติ - ตรวจสอบให้แน่ใจว่าคุณได้เลือกสาขาพื้นฐานที่ถูกต้องในครั้งนี้


ฉันไม่เห็นว่าเหตุใดจึงถูกลดคะแนน สิ่งนี้ใช้ได้ดีสำหรับฉันโดยสิ้นเชิง
เหี่ยว

3
ฉันไม่ได้ลงคะแนน แต่ฉันเห็นว่าคำตอบนี้ทำซ้ำคำตอบเก่าที่มีอยู่ (และทำได้โดยมีคุณภาพน้อยกว่า)
Lars Blumberg

@LarsBlumberg ถ้าคุณอ่านอย่างละเอียดคุณควรสังเกตว่ามันไม่ใช่การทำซ้ำแม้ว่าอาจจะมีบางส่วนที่ทับซ้อนกันก็ตาม สำหรับฉันถ้า (n -1) ขั้นตอนแทนที่จะเป็น n ขั้นตอนสามารถแก้ปัญหาได้ก็ควรแบ่งปัน :-)
Golden Thumb

2
หากขั้นตอน (n-1) ละเว้นขั้นตอนที่เป็นประโยชน์เช่นการปิด PR เก่าและการอ้างอิงในขั้นตอนใหม่ฉันไม่เห็นคุณค่าในการทำซ้ำขั้นตอนย่อยจากคำตอบที่มีอยู่แล้ว โดยเฉพาะอย่างยิ่งเมื่อรายการขั้นตอนน้อยอ่านยากเนื่องจากไม่มีการจัดรูปแบบที่เหมาะสม
Lars Blumberg
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.