DevOps Bootcamp · บทเรียน

การเขียนประวัติใหม่ด้วย git filter-repo

เรียนรู้วิธีเขียนประวัติคลังเก็บใหม่ในระดับขนาดใหญ่ เพื่อลบไฟล์ขนาดใหญ่หรือข้อมูลละเอียดอ่อนด้วย git filter-repo

บทเรียน 4 จาก 413 ขั้นตอน

การเขียนประวัติใหม่ด้วย git filter-repo เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องเขียนประวัติใหม่

บางครั้งคุณต้องเขียนประวัติทั้งหมดของรีโพซิทอรีใหม่ เช่น เพื่อลบรหัสผ่านที่รั่วไหล ลบไฟล์ขนาดใหญ่ที่คอมมิตโดยไม่ได้ตั้งใจ หรือแก้ไขอีเมลผู้เขียนในคอมมิตทั้งหมด

ทำความรู้จัก git filter-repo

git filter-repo เป็นเครื่องมือสมัยใหม่ที่รวดเร็วสำหรับเขียนประวัติใหม่ และมาแทนที่ git filter-branch รุ่นเก่าที่ทำงานช้า

การติดตั้งเครื่องมือ

เครื่องมือนี้เป็นโปรแกรมแยกต่างหาก ซึ่งมักติดตั้งผ่าน pip หรือตัวจัดการแพ็กเกจ

pip install git-filter-repo

ทำงานบนโคลนเสมอ

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

git clone --mirror git@github.com:you/repo.git

การลบไฟล์ออกจากประวัติ

หากต้องการล้างไฟล์ออกจากคอมมิตทุกครั้ง ให้ใช้ตัวเลือก --path และ --invert-paths

git filter-repo --path secrets.env --invert-paths

การลบก้อนข้อมูลขนาดใหญ่

คุณสามารถนำไฟล์ที่มีขนาดเกินขีดจำกัดออก เพื่อทำให้รีโพซิทอรีที่ใหญ่เกินไปมีขนาดเล็กลง

git filter-repo --strip-blobs-bigger-than 10M

การเขียนอีเมลผู้เขียนใหม่

แก้ไขอีเมลผู้เขียนที่ไม่ถูกต้องในคอมมิตทั้งหมดด้วย mailmap หรือ callback

git filter-repo --mailmap my-mailmap.txt

การแทนที่ข้อความในประวัติ

ล้างสตริงข้อมูลลับทุกแห่งที่ปรากฏ โดยใช้ไฟล์นิพจน์

git filter-repo --replace-text expressions.txt

แฮชคอมมิตเปลี่ยนแปลง

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

การพุชผลลัพธ์แบบบังคับ

หลังจากเขียนประวัติใหม่แล้ว คุณต้องพุชแบบบังคับ เนื่องจากประวัติบนรีโมตไม่ตรงกันอีกต่อไป

git push --force --all

การประสานงานกับทีม

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

แบบทดสอบสั้น ๆ

ตรวจสอบความเข้าใจของคุณเกี่ยวกับการเขียนประวัติใหม่

สรุป

คุณได้เรียนรู้การเขียนประวัติใหม่:

  • git filter-repo มาแทนที่ filter-branch
  • ลบไฟล์ ก้อนข้อมูลขนาดใหญ่ หรือข้อความข้อมูลลับออกจากประวัติทั้งหมด
  • ทำงานบนโคลนเสมอ เพราะแฮชคอมมิตจะเปลี่ยนแปลง
  • พุชแบบบังคับ แล้วให้ทีมโคลนรีโพซิทอรีใหม่ภายหลัง
เริ่มต้นได้ฟรี

เรียนรู้ DevOps Bootcamp ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
142
บทเรียน
568

คำถามที่พบบ่อย

บทเรียน “การเขียนประวัติใหม่ด้วย git filter-repo” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเขียนประวัติใหม่ด้วย git filter-repo” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเขียนประวัติใหม่ด้วย git filter-repo”

เรียนรู้วิธีเขียนประวัติคลังเก็บใหม่ในระดับขนาดใหญ่ เพื่อลบไฟล์ขนาดใหญ่หรือข้อมูลละเอียดอ่อนด้วย git filter-repo คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

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

บทเรียน “การเขียนประวัติใหม่ด้วย git filter-repo” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Git Reflog และการกู้คืนประวัติ
  2. Git Bisect สำหรับการแก้ไขข้อบกพร่อง
  3. การบำรุงรักษาและจัดระเบียบคลังเก็บ
  4. การเขียนประวัติใหม่ด้วย git filter-repo
← กลับไปที่ DevOps Bootcamp