การเปิดตัวระบบควบคุมแหล่งที่มาแบบกระจาย Git 2.23

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

เมื่อเทียบกับรุ่นก่อนหน้า เวอร์ชันใหม่มีการเปลี่ยนแปลง 505 รายการ ซึ่งเตรียมโดยการมีส่วนร่วมของนักพัฒนา 77 คน โดย 26 คนมีส่วนร่วมในการพัฒนาเป็นครั้งแรก ขั้นพื้นฐาน นวัตกรรม:

  • คำสั่ง "git switch" และ "git Restore" แบบทดลองถูกนำมาใช้เพื่อแยกความสามารถ "git checkout" ที่เชื่อมโยงกันอย่างหลวมๆ เช่น การจัดการสาขา (การสลับและการสร้าง) และการกู้คืนไฟล์ในไดเร็กทอรีการทำงาน ("git checkout $commit - $filename") หรือทันทีในพื้นที่การแสดงละคร (“—การแสดงละคร” ไม่มีอะนาล็อกใน “การชำระเงิน git”) เป็นที่น่าสังเกตว่า "git Restore" ต่างจาก "git checkout" โดยจะลบไฟล์ที่ไม่ได้ติดตามออกจากไดเร็กทอรีที่กำลังกู้คืน ("--no-overlay" เป็นค่าเริ่มต้น)
  • เพิ่มตัวเลือก “git Merge –quit” ซึ่งคล้ายกับ “-abort” จะหยุดกระบวนการรวมสาขา แต่ปล่อยให้ไดเร็กทอรีการทำงานไม่ถูกแตะต้อง ตัวเลือกนี้จะมีประโยชน์หากการเปลี่ยนแปลงบางอย่างที่เกิดขึ้นระหว่างการผสานด้วยตนเองนั้นดีกว่าที่จะออกเป็นการคอมมิตแยกต่างหาก
  • คำสั่ง "git clone", "git fetch" และ "git push" ตอนนี้คำนึงถึงการมีอยู่ของคอมมิตในพื้นที่เก็บข้อมูลที่เชื่อมโยง (ทางเลือก);
  • เพิ่ม ตัวเลือก “git Blaze —ignore-rev” และ “—ignore-revs-file” ช่วยให้คุณสามารถข้ามคอมมิตที่ทำการเปลี่ยนแปลงเล็กน้อยได้ (เช่น การแก้ไขการจัดรูปแบบ)
  • เพิ่มตัวเลือก "git cherry-pick —skip" เพื่อข้ามการคอมมิตที่ขัดแย้งกัน (อะนาล็อกที่จดจำของลำดับ "git reset && git cherry-pick —continue")
  • เพิ่มการตั้งค่า status.aheadBehind ซึ่งแก้ไขตัวเลือก “สถานะ git -[no-]ahead-behind” อย่างถาวร
  • ในเวอร์ชันนี้ "บันทึก git" ตามค่าเริ่มต้นจะคำนึงถึงการเปลี่ยนแปลงที่ทำโดย mailmap คล้ายกับที่ git shortlog ทำอยู่แล้ว
  • การดำเนินการอัพเดตแคชทดลองของกราฟคอมมิต (core.commitGraph) ที่นำมาใช้ใน 2.18 ได้รับการเร่งความเร็วอย่างมาก ยังทำให้ git for-each-ref เร็วขึ้นเมื่อใช้หลายเทมเพลต และลดจำนวนการเรียกไปยัง auto-gc ใน "git fetch —multiple";
  • ตอนนี้ "git Branch --list" จะแสดง HEAD ที่แยกออกมาที่จุดเริ่มต้นของรายการเสมอ โดยไม่คำนึงถึงสถานที่

ที่มา: opennet.ru

เพิ่มความคิดเห็น