คุณสามารถใช้git add --patch <filename>
(หรือ-p
สั้น ๆ ) และคอมไพล์จะเริ่มแบ่งไฟล์ของคุณเป็นสิ่งที่คิดว่าเป็น "hunks" ที่สมเหตุสมผล (บางส่วนของไฟล์) จากนั้นจะแจ้งให้คุณทราบคำถามนี้:
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
นี่คือคำอธิบายของแต่ละตัวเลือก:
- y เวทีก้อนใหญ่นี้สำหรับการกระทำต่อไป
- n อย่าทำสเตจขนาดใหญ่นี้สำหรับการส่งครั้งต่อไป
- qเลิก; อย่าทำสเตจขนาดใหญ่นี้หรือการล่าสัตว์ใด ๆ ที่เหลืออยู่
- a เวทีก้อนใหญ่นี้และทั้งหมดในภายหลัง hunks ในไฟล์
- d อย่าทำสเตจขนาดใหญ่นี้หรือการล่าในภายหลังในไฟล์
- g เลือกก้อนใหญ่เพื่อไปที่
- / ค้นหาก้อนใหญ่ที่ตรงกับ regex ที่กำหนด
- j ปล่อยให้ไม่แน่ใจก้อนใหญ่นี้ดูก้อนใหญ่ที่ไม่ลังเลต่อไป
- J ทิ้งก้อนใหญ่ทิ้งไว้ดูก้อนใหญ่ก้อนต่อไป
- k ออกจากก้อนใหญ่ลังเลนี้ดูก้อนใหญ่ลังเลก่อนหน้า
- K ทิ้งก้อนใหญ่ทิ้งไว้ดูก้อนใหญ่ก่อนหน้า
- s แยกก้อนใหญ่ปัจจุบันเป็นก้อนเล็ก ๆ
- e แก้ไขก้อนใหญ่ปัจจุบันด้วยตนเอง
- ? พิมพ์ช่วยเหลือก้อนใหญ่
หากไฟล์ไม่ได้อยู่ในพื้นที่เก็บข้อมูลคุณสามารถทำได้git add -N <filename>
ก่อน git add -p <filename>
หลังจากนั้นคุณสามารถไปกับ
หลังจากนั้นคุณสามารถใช้:
git diff --staged
เพื่อตรวจสอบว่าคุณแสดงการเปลี่ยนแปลงที่ถูกต้อง
git reset -p
เพื่อ unstage hunks เพิ่มผิดพลาด
git commit -v
เพื่อดูการกระทำของคุณในขณะที่คุณแก้ไขข้อความการกระทำ
หมายเหตุนี่แตกต่างจากgit format-patch
คำสั่งซึ่งมีวัตถุประสงค์เพื่อแยกวิเคราะห์ข้อมูลลงใน.patch
ไฟล์
การอ้างอิงสำหรับอนาคต: เครื่องมือ Git - การจัดเตรียมแบบโต้ตอบ