คุณทำสควอชทั้งหมดได้อย่างไร?

How Do You Squash All Commits One



ใน Git Squash เป็นเทคนิคที่ให้คุณทำการเปลี่ยนแปลงต่างๆ ในการคอมมิต จากนั้นรวมเป็นคอมมิตเดียว มาอธิบายโดยใช้ตัวอย่าง สมมติว่าคุณมีคอมมิตจำนวน n รายการ และเมื่อคุณใช้ git squashing กับคอมไพล์ คุณสามารถสควอชหรือบีบอัดคอมมิต 'n' ทั้งหมดให้เป็นคอมมิตเดียวได้ สควอช Git ใช้เพื่อเปลี่ยนการคอมมิตขนาดใหญ่หลายรายการให้เป็นคอมมิตที่มีความหมายเดียวขนาดเล็ก ดังนั้น คุณสามารถทำให้บันทึก git ชัดเจนขึ้นได้ คุณยังสามารถรวมสาขาโดยใช้เทคนิคการสควอช แนวทางปฏิบัติที่ดีที่สุดคือการคอมมิตสควอชเสมอและทำการรีเบสกับมาสเตอร์หรือแบรนช์หลัก

บทความนี้จะอธิบายวิธีการ Squash คอมมิททั้งหมดในการคอมมิตเดียวใน git เราได้ใช้ขั้นตอนทั้งหมดในการแจกจ่าย CentOS 8 Linux







สควอชผูกมัดเป็นหนึ่งเดียวกับ git

คุณสามารถใช้ git squashing ได้ในขั้นตอนต่อไปนี้:



ขั้นตอนที่ 1: เลือก เริ่มการคอมมิต

ในการกำหนดจำนวนคอมมิตที่คุณต้องการเพื่อสควอช คำสั่งต่อไปนี้ที่คุณจะรันบนเทอร์มินัล:



$ git log





ตอนนี้ คุณจะเรียกใช้ git เพื่อเริ่มเซสชัน rebase แบบโต้ตอบโดยใช้คำสั่งต่อไปนี้:

$ git rebase -i HEAD~N

ใน HEAD~N ด้านบน 'N' คือจำนวนคอมมิตทั้งหมดที่คุณกำหนดจากคำสั่ง 'git log' สมมติว่าจำนวนการคอมมิตคือ 4 ตอนนี้ คำสั่งจะเปลี่ยนเป็นรูปแบบต่อไปนี้:

$ git rebase -i HEAD~4

รายการคอมมิตต่อไปนี้จะแสดงบนเทอร์มินัลโดยที่แต่ละคอมมิชชันจ้องมองด้วยการเลือกคำ

ขั้นตอนที่ 2: เปลี่ยน Pick เป็น Squash

ที่นี่ เราจะทำเครื่องหมายการคอมมิตทั้งหมดเป็น squashable ปล่อยให้คอมมิตแรกที่จะใช้เป็นจุดเริ่มต้น ดังนั้นให้เปลี่ยน vim editor เป็นโหมดแทรกโดยกด 'i' และเปลี่ยนการเลือกทั้งหมดเป็นสควอชยกเว้นการคอมมิตครั้งแรก ตอนนี้ กด 'Esc' เพื่อเปลี่ยนโหมดแทรก และกด ':wq!' เพื่อบันทึกการเปลี่ยนแปลงทั้งหมดและออก หากคุณกำลังใช้โปรแกรมแก้ไขข้อความอย่างง่าย คุณสามารถเปลี่ยนคำว่า 'เลือก' เป็น 'สควอช' และบันทึกการเปลี่ยนแปลงได้ หลังจากนั้น คุณจะเห็นหน้าต่างต่อไปนี้บนเทอร์มินัล:

เมื่อคุณจะออกจากเชลล์นี้ คุณจะเห็นข้อความต่อไปนี้ในหน้าต่างเทอร์มินัล:

หากคุณจะสควอชทั้งหมด คุณจะเห็นการคอมมิตทั้งหมดรวมกันเป็นคำสั่งการคอมมิตเดียวที่จะแสดงบนเทอร์มินัล:

บทสรุป

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