เอกสาร

Rebase แบบโต้ตอบ

Rebase โต้ตอบเปลี่ง git rebase -i ให้เป็นกระแสเห็นภาพ: ลากจัดคิวคอมมิตใหม่ ใช้คอมมิตทีละอัน แก้ความขัดแย้งแบบเห็นภาพ — ไม่ต้องใช้บรรทัดคำสั่ง

การเริ่ม

เปิดแผง branch และพิมพ์ในช่อง Filter branches... เพื่อหา branch เป้าหมาย แล้วคลิกขวา → Rebase Current Branch onto '{branch}' เพื่อ rebase branch ปัจจุบันลงบนเป้าหมาย แผงสลับไปมุมมอง rebase ซึ่งผ่านสี่ระยะ:

ค้น branch ในแผง แล้วเริ่ม rebase บนเป้าหมาย

1. การแก้คิวคอมมิต

คอมมิตบน branch คุณที่เป้าหมายไม่มี รวมเป็นคิว:

  • ลากเพื่อจัดเรียงใหม่;
  • แต่ละคอมมิตมีดรอปดาวน์การกระทำ: pick (เก็บ) / squash (พับเข้าอันก่อน รวมข้อความ) / fixup (พับ ทิ้งข้อความ) / edit (หยุดแก้) / drop (ทิ้ง);
  • คอมมิตที่ squash และ drop พับหายไปในภาพ
คิวคอมมิต rebase — จัดเรียงด้วยการลาก การกระทำรายคอมมิต

2. การใช้

Start Rebase เล่นคิวลงบนเป้าหมายคอมมิตต่อคอมมิตพร้อมแถบความคืบหน้าสด; ไม่มีความขัดแย้งก็วิ่งตรงจนจบ Abort ถอยได้ตลอด

3. ความขัดแย้ง (ถ้ามี)

ความขัดแย้งระหว่างใช้สลับไปมุมมองความขัดแย้ง — รายการไฟล์บวกตัวแก้ merge สี่โหมด (Merge / Split / Raw / AI) โดย hunk ที่ขัดแย้งแต่ละอันได้การตัดสินใจของตัวเอง (Ours / Theirs / Both …; ดู แก้ความขัดแย้ง) เมื่อทุกไฟล์ถูกแก้ Continue ทำ rebase ต่อ

มุมมองความขัดแย้ง — การตัดสินใจ merge ราย hunk

4. เสร็จสิ้น

เมื่อจบแผงยืนยัน Branch '{branch}' was rebased onto '{target}' และแสดงการ์ด push — rebase เขียนประวัติใหม่ branch ระยะไกลจึงต้องอัปเดตแบบบังคับ:

  • Force Push with Lease — แนะนำ: เขียนทับเฉพาะเมื่อไม่มีใคร push และไม่ใช้ --force เปล่า ๆ;
  • Not now — ข้าม push; rebase ท้องถิ่นเสร็จแล้ว
หน้าเสร็จ — Force Push with Lease หรือข้าม push

เซสชันยังใช้ได้ระหว่าง rebase; การปิดแผงไม่ขัดจังหวะที่กำลังรัน