วิธีการปรับเปลี่ยนคำขอดึง Github?


163

ฉันเปิดคำขอดึงเพื่อโครงการ ผู้ดูแลตัดสินใจที่จะยอมรับ แต่บอกให้ฉันแก้ไขเนื้อหาบางอย่าง

ฉันจะทำมันได้อย่างไร ไม่ว่าฉันควรเก็บแฮชการเปลี่ยนแปลงไม่เปลี่ยนแปลงฉันจะทำอย่างไร


คำตอบ:


178

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

ตัวอย่าง:

หากคุณต้องการรวมขเข้ากับมาสเตอร์

  1. คุณกด c1, c2, c3 ถึง b
  2. จากนั้นคุณทำการร้องขอใหม่สำหรับ b
  3. มันจะได้รับการตรวจสอบและคุณต้องการความมุ่งมั่นมากขึ้น
  4. คุณกด c11, c21, c31 เป็น b
  5. ตอนนี้คำขอดึงจะแสดงการกระทำทั้งหมด 6 หกรายการ

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

4
ทุกคนที่ผลักดันไปยังสาขาเฉพาะ
Daij-Djan

@ Daij-Djan บ่อยมากถ้ามีคนสร้างคำขอดึงเขาผลักไปยังที่เก็บแยกของเขาเอง เป็นไปได้หรือไม่ที่จะเพิ่มความมุ่งมั่นในการประชาสัมพันธ์โดยคนที่ไม่สามารถเข้าถึงส้อมของเขา?
Maciek Łoziński


@ MaciekŁozińskiคำตอบนั้นก็ต่อเมื่อ "คุณ [สามารถ] ผลักดันไปยังสาขาเฉพาะ" :)
Daij-Djan

34

ฉันเพิ่งมีการส่งคำขอหนึ่งครั้งและฉันก็ใช้git commit --amendเพื่ออัปเดต จากนั้นฉันก็ใช้แรงผลักดันgit push -fเพื่อที่ความมุ่งมั่นของฉันที่ได้รับการแก้ไขจะแทนที่สิ่งเดิม คำขอดึงจะรับการมอบหมายใหม่โดยอัตโนมัติ (มันแสดงให้เห็นว่าทั้งสองกระทำ แต่เมื่อฉันโหลดหน้าซ้ำการกระทำเดิมได้หายไป)

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


8

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

โซลูชันทางเลือกและเทคนิคที่ฉันใช้มีดังนี้:

  1. สร้างสาขาใหม่ (แก้ไข) จากพื้นที่เก็บข้อมูล (อัปสตรีม) และสาขา (พัฒนา) ที่คุณต้องการส่งคำขอดึงโดยทำ:

    สาขา git แก้ไขต้นน้ำ / พัฒนา

  2. เพิ่มความมุ่งมั่นของคุณในสาขาที่เพิ่งสร้างใหม่นี้โดยตรง

    คอมไพล์กระทำ -m "ข้อความของคุณ"

  3. ผลักสาขานี้ไปยังรีโมตแบบแยกทางของคุณเอง (อาจเป็นชื่อดั้งเดิม)

  4. เปรียบเทียบและส่งคำขอดึงใหม่พร้อมประวัติการส่งข้อมูลที่ชัดเจน
  5. นอกจากนี้ควรลบสาขาของคุณหลังจากที่มีการรวมคำขอดึงแล้ว
  6. และคุณสามารถแสดงความคิดเห็นและปิดคำขอดึงก่อนหน้าของคุณ

1

นอกจากนี้คุณยังสามารถใช้API GitHub

ตัวอย่างกับขด

curl --user "your_github_username" \
     --request PATCH \
     --data '{"title":"newtitle","body":"newbody",...}' \
     https://api.github.com/repos/:owner/:repo/pulls/:number

คุณสามารถค้นหารายการข้อมูลที่ไม่ต้องเรียกเก็บเงินได้ในเอกสารนักพัฒนา GitHub

ตัวอย่าง: เปลี่ยนชื่อคำขอดึงของฉัน

curl --user "jeremyclement" \
     --request PATCH \
     --data '{"title":"allows the control of files and folders permissions."}' \
     https://api.github.com/repos/Gregwar/Cache/pulls/9

ฉันพยายามเปลี่ยนสาขาแต่ฉันคิดว่าhead/labelและhead/refไม่สามารถแก้ไขได้
hexaJer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.