การเปลี่ยนชื่อสาขาในขณะที่ร้องขอการดึง


106

บน Github คุณสามารถดึงคำขอเพื่อเพิ่มฟังก์ชันการทำงานให้กับโปรเจ็กต์ได้ การมีส่วนร่วมของผู้หนึ่งจะต้องอยู่ในสาขาที่หากคำขอได้รับการยอมรับจะรวมเข้ากับสาขาหลัก (หรือสาขาที่คล้ายคลึงกัน) ของโครงการ

ตอนนี้ผมส่งคำขอดึงบน Github patch-1และผลงานของฉันอยู่บนกิ่งไม้ที่เรียกว่า ฉันสามารถแก้ไขชื่อของสาขาในเครื่องได้โดย

git branch -m patch-1 newname

และในหลักการที่ฉันยังสามารถเปลี่ยนชื่อได้ใน repo คดเคี้ยวของฉันบน Github โดยทำตามคำแนะนำที่พบในคำตอบนี้ สิ่งนี้ทำได้ในทางปฏิบัติโดยการลบสาขาเก่าpatch-1ในกรณีของฉันและส่งใหม่ด้วยชื่อnewnameอื่น

อนุญาตให้เปลี่ยนชื่อสาขาpatch-1บนที่เก็บที่แยกของฉันบน Github ได้หรือไม่เมื่อถือว่าเป็นการร้องขอการดึง หรือทำให้เกิดปัญหาในการจัดการคำขอดึง?

มีวิธีใดในการเปลี่ยนชื่อสาขาบนที่เก็บส้อมบน Github เมื่อสาขานั้นเป็นคำขอดึง

คำตอบ:


122

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

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


198
เหตุผลหนึ่งที่ไม่ทำเช่นนั้นคือการสูญเสียการอภิปรายเกี่ยวกับการประชาสัมพันธ์ที่มีอยู่
Johnny Everson

10
ฉันไม่เข้าใจว่าเหตุใดจึงมีข้อ จำกัด อย่างเข้มงวดในการเปลี่ยนชื่อสาขาต้นทางใน PR bahaviour ที่น่ารำคาญเหมือนกันมีอยู่ใน bitbucket อีกวิธีหนึ่งคือการแก้ไข PR และเปลี่ยนสาขาต้นทางเป็นสาขาอื่น อาจมีคนพูดว่า "ถ้าคุณเปลี่ยนสาขาต้นทางแสดงว่า PR ใหม่ยังไงก็ได้" ในทางเทคนิคใช่ แต่ไม่มีอะไรป้องกันไม่ให้นักพัฒนาตั้งค่าต้นน้ำจากสาขาที่แตกต่างไปจากเดิมอย่างสิ้นเชิงจากนั้นทำไฟล์git push -f. PR ได้รับการอัปเดตด้วยรหัสใหม่ทั้งหมดและยังคงเป็น PR "เหมือนเดิม"
L. Holanda

35

คำตอบสั้น ๆ :

ไม่

แนวทางอื่น:

  1. เปิด PR ใหม่กับสาขาใหม่ (เปลี่ยนชื่อ)
  2. ปิด PR เก่าที่อ้างถึงอันใหม่ (เช่นปิดด้วย #new_pr_id)
  3. แก้ไขคำอธิบายของ PR ใหม่ (เช่น Supersedes #old_pr_id)
  4. (ไม่บังคับ) แสดงความคิดเห็นเกี่ยวกับการสนทนาที่เกี่ยวข้องใน PR เก่า

บันทึก:

ชื่อของสาขาระยะไกล (ประกอบด้วย PR) จำเป็นในการเปลี่ยนแปลงเนื่องจากระบบบิลด์ต้องการชื่อสาขาที่ลงท้ายด้วยรหัสตั๋ว อย่างไรก็ตามมีการเปิด PR ก่อนการสร้างตั๋วอย่างเป็นทางการ (จากข้อมูลจำเพาะ) และมีการอภิปรายที่มีคุณค่า แนวทางที่อธิบายไว้เป็นวิธีเดียวที่จะทำให้ระบบบิลด์ทำงานได้และไม่สูญเสียข้อมูลใด ๆ (แม้ว่าจะมีขั้นตอนเพิ่มเติมในการติดตามก็ตาม)


9
โดยทั่วไปสาขาที่ระบุจะถูกลบออกหลังจากที่รวมเข้าด้วยกันฉันคิดว่าควร "ยอม" กับชื่อที่ไม่ถูกต้องสักระยะหนึ่งแทนที่จะเพิ่มค่าใช้จ่ายของ PR ใหม่ที่อ้างถึง PR เก่าเพื่อวัตถุประสงค์ในการติดตามการสนทนาในอดีต
นีโอ

2
เกี่ยวกับคำตอบ "อัปเดต": ฉันคิดว่าความตั้งใจของ OP คือการเปลี่ยนสาขา "จาก" ไม่ใช่สาขาฐาน ฉันไม่เห็นว่าสิ่งนี้จะช่วยได้อย่างไร
David Cook

2
@SlobodanIlic คุณสามารถลบความคิดเห็นที่ล้าสมัยต่อไปนี้ได้หรือไม่, stackoverflow.com/questions/20007578/…
Jaime Hablutzel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.